컨트랙트를 짜다가 디버깅을 해야하는데, 당연히 트랜잭션 정보를 볼 줄 알아야하는데, 잘 볼줄을 몰라서 이 참에 한번 공부해보려고 합니다.
from: 0x5B3...eddC4to: QVEcore.sendNftToContract(uint256) 0x7EF...8CB47value: 0 weidata: 0xd41...00000logs: 1hash: 0x8d6...7c4fd
status true Transaction mined and execution succeed
해석
트랜잭션이 성공적으로 완료되었다.
transaction hash 0x8d65128820bca09d465dbc7b5af3b3f7d326d35eff21f0fdb7a9484a21b7c4fd
해석
트랜잭션 해시
block hash 0x422c621dfb2f48780f9930cd631462f21716d5e31c56a9ecb30836f028622dfe
해석
블록해시
block number 10
해석
블록번호
from 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
해석
보내는 주소
to QVEcore.sendNftToContract(uint256) 0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47
해석
받는 주소(컨트랙트의 함수), 왜냐하면 이 트랜잭션은 NFT를 컨트랙트로 보내는 함수이기 때문입니다.
gas 179553 gas
해석
사용된 가스
transaction cost 136933 gas
해석
트랜잭션 비용
execution cost 125341 gas
해석
실행비용
input 0xd41...00000
해석
전송된 값
decoded input {
"uint256 tokenId": "0"
}
해석
입력데이터는 인코딩되어있습니다. 이건 디코딩된 버전이고 여기에 따르면 uint256 tokenId에 0이 입력인자로 들어갔습니다.
decoded output {
"0": "address: investor 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
"1": "uint256: investedAmount 1000000000000000000",
"2": "uint256: profit 0",
"3": "uint256: strategyId 99"
}
해석
디코딩된 출력,
해석
투자자 주소 : ~~
해석
투자된 금액 1이더
해석
이익은 0
해석
전략 번호는 99
logs
[
{
"from": "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8",
"topic": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"event": "Transfer",
"args": {
"0": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
"1": "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47",
"2": "0",
"from": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
"to": "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47",
"tokenId": "0"
}
}
]
해석
로그입니다.
해석
보면 from 0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8
에서 로그가 발생했습니다. 여기서 이벤트의 이름은 Transfer
입니다.
해석
from
0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
에서 to
0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47
(컨트랙트의 함수)로 tokenId
가 0인 NFT가 전송된 것을 알 수 있습니다.
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.