https://1inch.github.io/tx-decoder/build
From:
{
"from": "0x64741d0b9e376d75873c12e1b0cdccc26c3bcb04",
"to": "0x1111111254fb6c44bac0bed2854e76f90643097d",
"nonce": 194,
"gasPrice": "0x1b7b430f2c",
"gasLimit": "0x091d06",
"value": "0x00",
"data": "0x7c025200000000000000000000...00e26b9977"
}
Into:
{
"data": {
"srcToken": {
"symbol": "ETH"
...
},
"dstToken": {
"symbol": "ATRI"
...
},
"dstAmount": {
"type": "BigNumber",
"hex": "0x015c6f"
},
"srcAmount": {
"type": "BigNumber",
"hex": "0x12dfb0cb5e880000"
},
"minReturnAmount": {
"type": "BigNumber",
"hex": "0x015ab1"
}
}
}
yarn add @1inch/tx-decoder
Statements | Branches | Functions | Lines |
---|---|---|---|
import {TxConfirmDataBuilder, Transaction} from '@1inch/tx-decoder';
/* Implement your solution to make RPC calls to blockchain */
const rpcCaller = (method, params) => {
return window.ethereum.request({ method, params });
}
const txUiItemsBuilder = new TxConfirmDataBuilder({
tokens: { ... }, // Result of https://tokens.1inch.io/v1.1/1
tokenPrices: { ... } // Result of https://token-prices.1inch.io/v1.1/1
}, rpcCaller);
const txConfig: Transaction = {
nonce: 383,
gasPrice: '0x1da4f97c6e',
gasLimit: '0x011150',
from: '0x3b608c5243732903152e38f1dab1056a4a79b980',
to: '0x4fabb145d64652a948d72533023f6e7a623c7c53',
value: '0x00',
data: '0x095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
};
const { items, txType } = await txUiItemsBuilder.buildItemsForTx(txConfig);
console.log('Tx type: ', txType); // approve
console.log('Items: ', items);
Example of result:
[
{
"key": {
"type": "placeholder"
},
"value": {
"type": "localizable",
"value": {
"format": "To continue, you need to allow 1inch smart contracts to use your %%0%%. This has to be done only once for each token.",
"args": [
"BUSD"
]
}
}
},
{
"key": {
"type": "token",
"value": {
"type": "amount",
"token": {
"symbol": "BUSD",
"name": "Binance USD",
"decimals": 18,
"address": "0x4fabb145d64652a948d72533023f6e7a623c7c53",
"logoURI": "https://tokens.1inch.io/0x4fabb145d64652a948d72533023f6e7a623c7c53.png"
}
}
},
"value": {
"type": "amount",
"value": {
"token": {
"symbol": "BUSD",
"name": "Binance USD",
"decimals": 18,
"address": "0x4fabb145d64652a948d72533023f6e7a623c7c53",
"logoURI": "https://tokens.1inch.io/0x4fabb145d64652a948d72533023f6e7a623c7c53.png"
},
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
"sign": "0"
}
}
},
{
"key": {
"type": "wallet",
"value": {
"type": "own"
}
},
"value": {
"type": "text",
"value": {
"type": "address",
"text": "0x3b608c5243732903152e38f1dab1056a4a79b980"
}
}
},
{
"key": {
"type": "placeholder"
},
"value": {
"type": "placeholder",
"value": {
"type": "fee"
}
}
}
]
For more examples see unit-tests
- RPC method
eth_call
- List of tokens
- List of tokens prices
https://etherscan.io/tx/0xbd44b75afac45ef81af448c47b40d32ac705fe2d0354b39097f5ebfd62046ffe
## | Name | Type | Data |
---|---|---|---|
1 | _spender | address | 0x1111111254fb6c44bAC0beD2854e76F90643097d |
2 | _value | uint256 | 115792089237316195423570985008687907853269984665640564039457584007913129639935 |
https://etherscan.io/tx/0x698156119b255c33347bf844a0245dafdc39e871f3825ae5c24cc0019be748ed
## | Name | Type | Data |
---|---|---|---|
1 | caller | address | 0x220bdA5c8994804Ac96ebe4DF184d25e5c2196D4 |
2 | desc.srcToken | address | 0xdAC17F958D2ee523a2206206994597C13D831ec7 |
3 | desc.dstToken | address | 0x853d955aCEf822Db058eb8505911ED77F175b99e |
4 | desc.srcReceiver | address | 0x220bdA5c8994804Ac96ebe4DF184d25e5c2196D4 |
5 | desc.dstReceiver | address | 0x64741d0b9e376d75873C12e1B0cdccc26C3bCB04 |
6 | desc.amount | uint256 | 114445791769 |
7 | desc.minReturnAmount | uint256 | 113841200360986751251430 |
8 | desc.flags | uint256 | 4 |
9 | desc.permit | bytes | 0x |
10 | data | bytes | 0x |
https://etherscan.io/tx/0xd0de097ca15040e588f8528162c01f5cad29fd7ea2168b2a503bc3633a4e8a6b
## | Name | Type | Data |
---|---|---|---|
1 | srcToken | address | 0x6B175474E89094C44Da98b954EedeAC495271d0F |
2 | dstToken | address | 0x0000000000000000000000000000000000000000 |
3 | amount | uint256 | 2000000000000000000 |
4 | minReturn | uint256 | 424579385213342 |
https://etherscan.io/tx/0x027dbf1121f509031eba135ef03a17f18bfa7195c035c73db4cfc94b55df522e
## | Name | Type | Data |
---|---|---|---|
1 | recipient | address | 0x3b608c5243732903152E38F1dAB1056A4A79b980 |
2 | srcToken | address | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
3 | dstToken | address | 0x0000000000000000000000000000000000000000 |
4 | amount | uint256 | 2000000 |
5 | minReturn | uint256 | 424703358412792 |
6 | permit | bytes | 0x0000000000000000000000003b608c5243732903152e38f1dab1056a4a79b9800000000000000000000000001111111254fb6c44bac0bed2854e76f90643097dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000618d1d77000000000000000000000000000000000000000000000000000000000000001b8576a8af192b84d1e122d82eeddeb2fd0b006381926590f471fd23247aeeeb09010cad06bbbf7aa344d311a13ed14419a913f2015c88600dbbd579b180bf6d36 |
https://etherscan.io/tx/0x179a4f63854d6e6f5d18ec1bf31d47c4debb6a7c32a094a815e4c0eeb25f4c2d
## | Name | Type | Data |
---|---|---|---|
1 | srcToken | address | 0x111111111117dC0aa78b770fA6A738034120C302 |
2 | amount | uint256 | 1000000000000000000 |
3 | minReturn | uint256 | 927972006385351 |
4 | pools | bytes32[] | 0x40000000000000003b6d034086f518368e0d49d5916e2bd9eb162e9952b7b04d |
https://etherscan.io/tx/0xe970c4f72e5d4a07d4fc52df338e75a082c3b4b835e40d7e4ea2df567b066de3
## | Name | Type | Data |
---|---|---|---|
1 | srcToken | address | 0x19042021329FDdcFBea5f934FB5b2670C91F7D20 |
2 | amount | uint256 | 100000 |
3 | minReturn | uint256 | 224171088701284 |
4 | pools | bytes32[] | 0x40000000000000003b6d0340ec9eb7af42207a8da12a04ee4b2f2b4b9cb43bd5 |
5 | permit | bytes | 0x0000000000000000000000003b608c5243732903152e38f1dab1056a4a79b9800000000000000000000000001111111254fb6c44bac0bed2854e76f90643097dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000618d1e72000000000000000000000000000000000000000000000000000000000000001bb71d754ebc94ea2fe86bd06f941b4607b58433d29a4bded6f42c9ea789e997cc161711ec3aa97cc6af741c0f3e804398198db0d50f701fe42889509a5e0d8fb9 |
https://etherscan.io/tx/0xc0302a2f43cf86c04cfa8c67025da08bbc53372cc313e87ba0d32febff2f517c
## | Name | Type | Data |
---|---|---|---|
1 | amount | uint256 | 100000000000000000 |
2 | minReturn | uint256 | 237601593079374 |
3 | pools | bytes32[] | 14474011154664524427946373126746238925103584872995555959354853311969479154385 |
https://etherscan.io/tx/0x1b251d13fd530ddf2d4125631c71ee07b56568c1a6cf55a8e53a29a599b81e92
## | Name | Type | Data |
---|---|---|---|
1 | recipient | address | 0x3b608c5243732903152E38F1dAB1056A4A79b980 |
2 | srcToken | address | 0x111111111117dC0aa78b770fA6A738034120C302 |
3 | amount | uint256 | 9976048355247503000 |
4 | minReturn | uint256 | 3195544757858711653 |
5 | pools | bytes32[] | 1206715178360966712196380527409201132437477346116, 57896044618658097711785492505541897408525400718342232749193727702159444919374 |
6 | permit | bytes | 0x0000000000000000000000003b608c5243732903152e38f1dab1056a4a79b9800000000000000000000000001111111254fb6c44bac0bed2854e76f90643097dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000006187dd53000000000000000000000000000000000000000000000000000000000000001cdae2d3851069237b24b459c7c732ce95d1ed8519fa084ab44f167f356c1310134e9f3100eee9ec3d6b3631d82367ea69af53f5a626596da45c6c441749c376d6 |
{
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"Permit": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "nonce",
"type": "uint256"
},
{
"name": "deadline",
"type": "uint256"
}
]
},
"primaryType": "Permit",
"domain": {
"name": "1INCH Token",
"chainId": 1,
"verifyingContract": "0x111111111117dc0aa78b770fa6a738034120c302",
"version": "1"
},
"message": {
"deadline": 1636957129,
"nonce": 3,
"spender": "0x1111111254fb6c44bac0bed2854e76f90643097d",
"owner": "0xfb3c7eb936caa12b5a884d612393969a557d4307",
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
}
}
{
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"Permit": [
{
"name": "holder",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "nonce",
"type": "uint256"
},
{
"name": "expiry",
"type": "uint256"
},
{
"name": "allowed",
"type": "bool"
}
]
},
"primaryType": "Permit",
"domain": {
"name": "renBTC",
"chainId": 1,
"verifyingContract": "0xeb4c2781e4eba804ce9a9803c67d0893436bb27d",
"version": "1"
},
"message": {
"expiry": 1636957217,
"nonce": 0,
"spender": "0x1111111254fb6c44bac0bed2854e76f90643097d",
"holder": "0xfb3c7eb936caa12b5a884d612393969a557d4307",
"allowed": true
}
}
{
"primaryType": "Order",
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"Order": [
{
"name": "salt",
"type": "uint256"
},
{
"name": "makerAsset",
"type": "address"
},
{
"name": "takerAsset",
"type": "address"
},
{
"name": "makerAssetData",
"type": "bytes"
},
{
"name": "takerAssetData",
"type": "bytes"
},
{
"name": "getMakerAmount",
"type": "bytes"
},
{
"name": "getTakerAmount",
"type": "bytes"
},
{
"name": "predicate",
"type": "bytes"
},
{
"name": "permit",
"type": "bytes"
},
{
"name": "interaction",
"type": "bytes"
}
]
},
"domain": {
"name": "1inch Limit Order Protocol",
"version": "1",
"chainId": 1,
"verifyingContract": "0x3ef51736315f52d568d6d2cf289419b9cfffe782"
},
"message": {
"salt": "1502377947330",
"makerAsset": "0x6b175474e89094c44da98b954eedeac495271d0f",
"takerAsset": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"makerAssetData": "0x23b872dd000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d430700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bc16d674ec80000",
"takerAssetData": "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d43070000000000000000000000000000000000000000000000000002d79883d20000",
"getMakerAmount": "0xf4a215c30000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000002d79883d20000",
"getTakerAmount": "0x296637bf0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000002d79883d20000",
"predicate": "0x961d5b1e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000003ef51736315f52d568d6d2cf289419b9cfffe7820000000000000000000000003ef51736315f52d568d6d2cf289419b9cfffe7820000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044cf6fc6e3000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d4307000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002463592c2b000000000000000000000000000000000000000000000000000000006191f0a000000000000000000000000000000000000000000000000000000000",
"permit": "0x",
"interaction": "0x"
}
}