일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 체인의정석
- 스마트컨트렉트 함수이름 중복 호출
- 컨트렉트 동일한 함수이름 호출
- ethers type
- ethers
- 컨트렉트 배포 자동화
- 스마트컨트렉트프록시
- 오블완
- ethers websocket
- rust 기초
- 러스트 기초 학습
- git rebase
- 스마트컨트렉트테스트
- nest.js설명
- chainlink 설명
- vue기초
- 티스토리챌린지
- 러스트 기초
- 프록시배포구조
- SBT표준
- 스마트컨트렉트 예약어 함수이름 중복
- Vue
- ambiguous function description
- ethers v6
- Vue.js
- 머신러닝기초
- ethers typescript
- multicall
- 스마트 컨트렉트 함수이름 중복
- 러스트기초
Archives
- Today
- Total
체인의정석
다중 체인 환경 hardhat써서 로컬에서 테스트하기 본문
728x90
반응형
1. hardhat 써서 여러개의 체인 로컬에 띄우기
먼저 해당 명령어를 사용한다면 8545 포트로 노드가 띄워진다.
이때 포트를 다르게 해서 하나 더 띄우면 로컬에 체인이 2개가 생기게 된다.
// 새로운 창 열고 실행
npx hardhat node
// 새로운 창 하나 더 열고 실행
npx hardhat node --port 8546
2. provider 각각 지정해서 사용하기
const providerUrl_A = 'http://127.0.0.1:8545/';
const providerUrl_B = 'http://127.0.0.1:8546/';
//해당 프라이빗 키는 npx hardahat node 실행시 기본으로 제공되는 0번 프라이빗 키이므로 그대로 사용
const privateKeyA = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
const privateKeyB = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
const providerA = new ethers.JsonRpcProvider(providerUrl_A);
const providerB = new ethers.JsonRpcProvider(providerUrl_B);
const walletA = new ethers.Wallet(privateKeyA, providerA);
const walletB = new ethers.Wallet(privateKeyB, providerB);
이렇게 각각 provider를 설정해주고 나서
const contractAddress = "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB";
const sendMessageABI = [
"event SendMessage(address indexed caller, string uri, bytes params, uint256 deadline)"
];
const metaLane721Contract = new ethers.Contract(contractAddress, sendMessageABI, walletA);
위와 같이 사용하면 된다.
그리고 network를 통해서 스크립트를 실행하기 위해서
networks: {
a: {
url: 'http://127.0.0.1:8545/'
},
b: {
url: 'http://127.0.0.1:8546/'
},
다음과 같이 세팅해 주면 된다.
이를 통해서 로컬에서 다중 체인을 사용하는 브릿지 등을 미리 테스트 해볼 수 있다.
만약 프론트 엔드도 띄워서 하고 싶으면 메타마스크에 위에 지정한 로컬 URL을 넣고 테스트하면 된다.
이런식으로 테스트하면 컨트렉트에 콘솔까지 넣고 찍을 수 있는 장점도 있어서 세세한 디버깅이 가능하다.
728x90
반응형
'블록체인 > 퍼블릭 블록체인' 카테고리의 다른 글
smart contract에서 동일한 함수 이름이나 예약어가 있을 경우 (0) | 2024.09.30 |
---|---|
smart contract에서 동일한 함수 이름이나 예약어가 있을 경우 (0) | 2024.09.30 |
폴리곤 Polygon amoy 테스트넷 사용방법 (0) | 2024.06.05 |
AVAX 아발란체 테스트넷 사용법 (0) | 2024.06.05 |
Oasys testnet 사용방법 (0) | 2024.05.24 |
Comments