체인의정석

hardhat의 chainID를 수정하여 메타마스크와 연결하기, 메타마스크와 hardhat 테스트 네트워크 연결하는 법 본문

블록체인/Ethers & web3

hardhat의 chainID를 수정하여 메타마스크와 연결하기, 메타마스크와 hardhat 테스트 네트워크 연결하는 법

체인의정석 2022. 6. 30. 11:46
728x90
반응형

 

EIP712 형태의 서명에서 domain separator를 할 때 체인아이디가 들어가야 하기 때문에 이를 위해서 체인아이디를 통일 시키는 방법을 알아 보았다.

 

먼저 하드햇 네트워크 실행의 경우 npx hardhat node 를 입력하면 테스트 네트워크가 노드 형태로 올라가게 된다. 여기서 공개키와 비밀키가 같이 나오므로 나온 비밀키를 메타마스크에 임포트 시켜서 메타마스크 연결이 가능하다.

lambda256@lambda256-ethan% npx hardhat node
You are using a version of Node.js that is not supported by Hardhat, and it may work incorrectly, or not work at all.

Please, make sure you are using a supported version of Node.js.

To learn more about which versions of Node.js are supported go to https://hardhat.org/nodejs-versions
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/

Accounts
========

WARNING: These accounts, and their private keys, are publicly known.
Any funds sent to them on Mainnet or any other live network WILL BE LOST.

근데 스마트컨트렉트에서 

  function getChainId() public view returns (uint256) {
    return block.chainid;
  }

체인 아이디를 가져온 결과 

31337이 나왔다.

https://hardhat.org/metamask-issue

 

Hardhat | Ethereum development environment for professionals by Nomic Foundation

Hardhat is an Ethereum development environment. Compile your contracts and run them on a development network. Get Solidity stack traces, console.log and more.

hardhat.org

위의 링크를 타고 가보면 여기에 대한 해결법이 있는데

const config: HardhatUserConfig = {
  solidity: "0.8.4",
  networks: {
    hardhat: {
      chainId: 1337,
    },

설정에다가 하드햇의 체인아이디를 쓰는 것이다.

이렇게 설정해주면 하드햇 테스트 네트워크와 메타마스크의 연동이 있다.

 

이에 따라 eIp 721 테스트 결과

로컬 테스트에서 만든 signatrue 와 메타마스크 서명이 같게 나온것을 확인하였다.

728x90
반응형
Comments