bsc 解析 Transaction 的 input data

以这里为例子:https://bscscan.com/tx/0x46ab3eda9ca611bbb839bab26b67425f38d577ede8fb350cc3b30b5431483acf

在这里插入图片描述
看到这行小字了吗?点进去,有个专门用于解析的库。

解析 input 要去掉 开头的 10 个字符,因为那是方法的加密字符。

完整的代码如下:

let input_data = `0x7ff36ab500000000000000000000000000000000000000000073ef44020e785db242c9dd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000060675dbb66f2c58b5ab07cdc7b034b95c59289090000000000000000000000000000000000000000000000000000000061e1cd290000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000007fb4ed1b35d8f8638056913bece78b8cd624ca0d`;

input_data = input_data.substring(10);


const {decodeConstructorArgs} = require('canoe-solidity');
let abiExample = {
    'abi': [
        {
            "inputs": [
                {"internalType": "uint256", "name": "amountOutMin", "type": "uint256"},
                {
                    "internalType": "address[]",
                    "name": "path",
                    "type": "address[]"
                }, {"internalType": "address", "name": "to", "type": "address"},
                {
                    "internalType": "uint256",
                    "name": "deadline",
                    "type": "uint256"
                }
            ],
            'type': 'constructor'
        }
    ]
};

console.log(decodeConstructorArgs(abiExample.abi, input_data));

输出:

[
  {
    name: 'amountOutMin',
    type: 'uint256',
    data: '140156369371873394114611677'
  },
  {
    name: 'path',
    type: 'address[]',
    data: [
      'bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c',
      '7fb4ed1b35d8f8638056913bece78b8cd624ca0d'
    ]
  },
  {
    name: 'to',
    type: 'address',
    data: '60675dbb66f2c58b5ab07cdc7b034b95c5928909'
  },
  { name: 'deadline', type: 'uint256', data: '1642188073' }
]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值