상세 컨텐츠

본문 제목

Dapp Method ID Data 추출

Javascript/Web3

by 빠기윤 2019. 3. 15. 23:55

본문


Method ID는 '함수명(매개변수타입)' 을 sha3를 돌려서 나온 결과값의 앞에서부터 4Byte 입니다.

이는 Dapp의 특정 메소드를 호출하고싶을 경우 Transaction을 발생 시 data에 넣어야하는 코드이며 

아래는 이더스캔 Dapp호출 Transaction에 Input Data 예시 입니다.



방법1)

var sha_Method = web3.utils.sha3('함수명(매개변수타입)')

var methodId = sha_Method.substring(0,10)

*web3 v1.0


방법2)

var methodId = web3.eth.abi.encodeFunctionSignature("함수명(매개변수타입)")



   ( 예제 )   


Solidity.sol

contract Exsample{

function TestName(address _test1, uint256 _test2) external {

require(address(0) != _test1);

(_test1);

(_test2);

}

}


Test.js

const Web3 = require('web3')

const infura_test = new Web3(Web3.givenProvider || new Web3.providers.WebsocketProvider("wss://ropsten.infura.io/ws"))

const web3 = infura_test


var sha_Method = web3.utils.sha3('TestName(address,uint256)')

var methodId = sha_Method.substring(0,10)




관련글 더보기

댓글 영역