Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 네트워크
- erc
- ERC165
- blockchain
- geth
- Programming
- erc721
- 솔리디티
- NFT
- 제어의역전
- git
- 블록체인
- web
- github
- web3
- ethers
- truffle
- MySQL
- 이더리움
- Python
- solidity
- 트랜잭션
- Ethereum
- Docker
- web3.js
- 스마트 컨트랙트
- tcp
- JavaScript
- ERC20
- server
Archives
- Today
- Total
멍개의 연구소
[ethereum] input data의 methodId와 event signature 만드는 방법 본문
● methodId
etherscan을 보다보면 input Data가 다음과 같이 출력되는 모습을 볼 수 있습니다.
원래의 input data로 변환하면 다음과 같습니다.
여기서 methodID는 어떤 원리로 만들어 지는지 알아보겠습니다.
· solidity
contract Test {
function setA() public pure returns (bytes memory) {
// return bytes4(keccak256('balanceOf(address)')); 해당 방법도 가능
return abi.encodeWithSignature("transfer(address,uint256)");
}
}
· web3
const Web3 = require('web3');
const web3 = new Web3()
console.log(web3.eth.abi.encodeFunctionSignature("transfer(address,uint256)"))
0xa9059cbb
abi를 object 형태로 전달하는 방법도 있습니다.
const Web3 = require('web3');
const web3 = new Web3()
web3.eth.abi.encodeFunctionSignature({
name: 'transfer',
type: 'function',
inputs: [{
type: 'address',
name: 'to'
},{
type: 'uint256',
name: 'value'
}]
})
0xa9059cbb
● event signature
· web3js
web3.eth.abi.encodeEventSignature("Transfer(address,address,uint256)")
web3.eth.abi.encodeEventSignature({
name: 'Transfer',
type: 'event',
inputs: [{
indexed: true,
type: 'address',
name: 'from'
}, {
indexed: true,
type: 'address',
name: 'to'
},{
type: 'uint256',
name: 'value'
}]
})
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
'블록체인' 카테고리의 다른 글
[ethereum] truffle을 이용하여 스마트 컨트랙트 개발하기 (0) | 2022.08.28 |
---|---|
[ethereum] solidity overflow, underflow에 대해서 (0) | 2022.08.28 |
[solidity] library, enum (0) | 2022.08.28 |
[solidity] 에러함수 - require, revert, assert (0) | 2022.08.28 |
[Ethereum] genesis 초기화 시 cannot unmarshal 에러 해결법 (0) | 2022.08.28 |
Comments