区块链 解密 input 数据的完整流程

区块链 解密 input 数据的完整流程

步骤 1:获取交易信息

使用 WeBASE-Front 的 /transaction/{transactionHash} 接口获取交易的 input 数据。

步骤 2:获取合约 ABI

使用 WeBASE-Front 的 /contract/abi/{contractAddress} 接口获取合约的 ABI。

步骤 3:解密 input 数据

使用工具(如 ethers.js 或 web3.py)结合 ABI 解密 input 数据。

示例代码(JavaScript + ethers.js)

<script>
import {ethers} from "ethers"
// 合约 ABI
const abi = [{"constant":true,"inputs":[],"name":"retrieveJson","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"storedJson","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_json","type":"string"}],"name":"storeJson","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"jsonData","type":"string"}],"name":"JsonStored","type":"event"}];


const iface = new ethers.Interface(abi)
// 交易 input 数据
const   input="0xef0d4537000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007a17b2020202020226f7267616e697a6174696f6e223a207b202020202020202020226e616d65223a2022e7bbbfe889b2e59cb0e79083e78eafe4bf9de7bb84e7bb87222c20202020202020202022616262726576696174696f6e223a20224745454f222c2020202020202020202274797065223a2022e99d9ee890a5e588a9e7bb84e7bb87222c2020202020202020202261646472657373223a207b2020202020202020202020202022737472656574223a2022313233e78eafe4bf9de5a4a7e98193222c202020202020202020202020202263697479223a2022e7bbbfe889b2e5b882222c20202020202020202020202020227374617465223a2022e7bbbfe5b79ee79c81222c2020202020202020202020202022706f7374616c436f6465223a2022313233343536222c2020202020202020202020202022636f756e747279223a2022e7bbbfe889b2e59bbd222020202020202020207d2c20202020202020202022636f6e74616374223a207b202020202020202020202020202270686f6e65223a20222b31323334353637383930222c2020202020202020202020202022656d61696c223a2022696e666f40677265656e65617274682e6f7267222c202020202020202020202020202277656273697465223a20227777772e677265656e65617274682e6f7267222020202020202020207d2c20202020202020202022666f756e64696e6744617465223a2022323032302d30312d3135222c202020202020202020226d697373696f6e53746174656d656e74223a2022e887b4e58a9be4ba8ee4bf9de68aa4e59cb0e79083e78eafe5a283efbc8ce4bf83e8bf9be58fafe68c81e7bbade58f91e5b195e38082222c202020202020202020226465736372697074696f6e223a2022e7bbbfe889b2e59cb0e79083e78eafe4bf9de7bb84e7bb87e698afe4b880e4b8aae887b4e58a9be4ba8ee78eafe5a283e4bf9de68aa4e5928ce58fafe68c81e7bbade58f91e5b195e79a84e99d9ee890a5e588a9e7bb84e7bb87efbc8ce68891e4bbace9809ae8bf87e59084e7a78de6b4bbe58aa8e5928ce69599e882b2e9a1b9e79baee69da5e68f90e9ab98e585ace4bc97e5afb9e78eafe5a283e4bf9de68aa4e79a84e6848fe8af86e38082222c20202020202020202022736f6369616c4d656469614c696e6b73223a207b202020202020202020202020202266616365626f6f6b223a202268747470733a2f2f66616365626f6f6b2e636f6d2f677265656e65617274686f7267222c202020202020202020202020202274776974746572223a202268747470733a2f2f747769747465722e636f6d2f677265656e65617274686f7267222c20202020202020202020202020226c696e6b6564696e223a202268747470733a2f2f6c696e6b6564696e2e636f6d2f636f6d70616e792f677265656e65617274686f7267222c2020202020202020202020202022696e7374616772616d223a202268747470733a2f2f696e7374616772616d2e636f6d2f677265656e65617274686f7267222020202020202020207d2c20202020202020202022726567697374726174696f6e4e756d626572223a202231323334353637222c202020202020202020227461784964223a2022393837363534333231222c202020202020202020226d656d62657273223a205b202020202020202020202020207b2020202020202020202020202020202020226e616d65223a2022e5bca0e4b889222c202020202020202020202020202020202022706f736974696f6e223a2022e4b8bbe5b8ad222c202020202020202020202020202020202022636f6e74616374223a207b2020202020202020202020202020202020202020202270686f6e65223a20222b30393837363534333231222c20202020202020202020202020202020202020202022656d61696c223a20227a68616e6773616e40677265656e65617274682e6f72672220202020202020202020202020202020207d2c20202020202020202020202020202020202262696f223a2022e5bca0e4b889e68ba5e69c89e5a49ae5b9b4e78eafe4bf9de9a286e59f9fe5b7a5e4bd9ce7bb8fe9aa8cefbc8ce698afe7bbbfe889b2e59cb0e79083e78eafe4bf9de7bb84e7bb87e79a84e5889be5a78be4babae4b98be4b880e3808222202020202020202020202020207d2c202020202020202020202020207b2020202020202020202020202020202020226e616d65223a2022e69d8ee59b9b222c202020202020202020202020202020202022706f736974696f6e223a2022e9a1b9e79baee7bb8fe79086222c202020202020202020202020202020202022636f6e74616374223a207b2020202020202020202020202020202020202020202270686f6e65223a20222b31313232333334343535222c20202020202020202020202020202020202020202022656d61696c223a20226c69736940677265656e65617274682e6f72672220202020202020202020202020202020207d2c20202020202020202020202020202020202262696f223a2022e69d8ee59b9be8b49fe8b4a3e7bb84e7bb87e79a84e9a1b9e79baee7aea1e79086efbc8ce69385e995bfe8a784e58892e5928ce689a7e8a18ce59084e7b1bbe78eafe4bf9de6b4bbe58aa8e3808222202020202020202020202020207d2c2020202020202020205d20202020207d207d00000000000000000000000000000000000000000000000000000000000000";
// 解码 input 数据
const decoded = iface.parseTransaction({ data: input });

console.log(decoded);
console.log("*****************"+decoded.args);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值