web3 转换并解析input data, 在js中将BN格式转换为字符串或者是数字


前端在使用web3进行交互时,得到链上返回的input data,现在需要将其转换为完整的输入数据。

需要用到 ethereum-input-data-decoder 库。首先安装:
npm i ethereum-input-data-decoder
然后在js中:
const InputDataDecoder = require('ethereum-input-data-decoder');

// 引入abi
const abi = require('./libs/abi/pool.js')
const decoder = new InputDataDecoder(abi);
// 需要解码的input data数据
const data = `your input data`;

const result = decoder.decodeData(data);
// 得到解码后的数据
console.log('___0', result)
tips: 通常与 ethereum 交互的时候会遇到返回 BN 的数据类型。此时可以直接toString, toNumber()转换为想要的格式:
console.log('___1', result.inputs[2].toString())