Weird error (can't be represented as a JavaScript number) on tvm.run_executor
Closed this issue · 6 comments
tvm.run_executor with this object as the argument:
{
"message": "te6ccgEBBQEA2QABRYgAhWSMyfwSrUApdY7ejDsG0AonE45wNaQ3LaACiLkX/yIMAQHh/gukFT5Cw8HWojdnJ8VDspoyBDTSOczaa3jres/taQARv1Qnsogjqkz5lJvYJsyCvNeycp0y5NaYH7O9Ry3TAE+Jbltx55TJAaCHiGfGoe6ujqfBuVL2u//+ERpmDUNsAAAAX5UxDw2YeBz7UzuZGyACAWWAGuSjEiBxCHXN5F+0k7IlVYCsciNxP1XmvGuCCnNAiecgAAAAAAAAAAAAAAAAAAAAGCgDAQgAAAAABAAA",
"account": {
"type": "Account",
"boc": "te6ccgECRgEAEawAAnHABCskZk/glWoBS6x29GHYNoBROJxzga0huW0AFEXIv/kSjKD6gw8CVbAAAANVnHS+EXu9CVP/00ADAQHVPiW5bceeUyQGgh4hnxqHuro6nwblS9rv//hEaZg1DbAAAAF+VCPSFJ8S3LbjzymSA0EPEM+NQ91dHU+DcqXtd//8IjTMGobYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgDACAEWgB8S3LbjzymSA0EPEM+NQ91dHU+DcqXtd//8IjTMGobYAEAIm/wD0pCAiwAGS9KDhiu1TWDD0oQYEAQr0pCD0oQUAAAIBIAkHAcj/fyHtRNAg10nCAY4n0//TP9MA0//T/9MH0wf0BPQF+G34bPhv+G74a/hqf/hh+Gb4Y/hijir0BXD4anD4a234bG34bXD4bnD4b3ABgED0DvK91wv/+GJw+GNw+GZ/+GHi0wABCAC4jh2BAgDXGCD5AQHTAAGU0/8DAZMC+ELiIPhl+RDyqJXTAAHyeuLTPwH4QyG5IJ8wIPgjgQPoqIIIG3dAoLnekyD4Y5SANPLw4jDTHwH4I7zyudMfAfAB+EdukN4SAZgl3eRmNAV92wseXqPkerl17Jy5oAaJyZp72ZOlV5AhAAogLAoCASAcCwIBIBQMAgEgDg0ACbdcpzIgAc22xIvcvhBbo4q7UTQ0//TP9MA0//T/9MH0wf0BPQF+G34bPhv+G74a/hqf/hh+Gb4Y/hi3tFwbW8C+CO1P4EOEKGAIKz4TIBA9IaOGgHTP9Mf0wfTB9P/0wf6QNN/0w/U1woAbwt/gDwFoji9wX2CNCGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwcMjJcG8LcOKRIBAC/o6A6F8EyIIQcxIvcoIQgAAAALHPCx8hbyICyx/0AMiCWGAAAAAAAAAAAAAAAADPC2YhzzGBA5i5lnHPQCHPF5Vxz0EhzeIgyXH7AFswwP+OLPhCyMv/+EPPCz/4Rs8LAPhK+Ev4TvhP+Ez4TV5Qy//L/8sHywf0APQAye1U3n8SEQAE+GcB0lMjvI5AU0FvK8grzws/Ks8LHynPCwcozwsHJ88L/ybPCwclzxYkzwt/I88LDyLPFCHPCgALXwsBbyIhpANZgCD0Q28CNd4i+EyAQPR8jhoB0z/TH9MH0wfT/9MH+kDTf9MP1NcKAG8LfxMAbI4vcF9gjQhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcHDIyXBvC3DiAjUzMQICdhgVAQewUbvRFgH6+EFujirtRNDT/9M/0wDT/9P/0wfTB/QE9AX4bfhs+G/4bvhr+Gp/+GH4Zvhj+GLe0XWAIIEOEIIID0JA+E/IghBtKN3oghCAAAAAsc8LHyXPCwckzwsHI88LPyLPC38hzwsHyIJYYAAAAAAAAAAAAAAAAM8LZiHPMYEDmLkXAJSWcc9AIc8XlXHPQSHN4iDJcfsAW18FwP+OLPhCyMv/+EPPCz/4Rs8LAPhK+Ev4TvhP+Ez4TV5Qy//L/8sHywf0APQAye1U3n/4ZwEHsDzSeRkB+vhBbo5e7UTQINdJwgGOJ9P/0z/TANP/0//TB9MH9AT0Bfht+Gz4b/hu+Gv4an/4Yfhm+GP4Yo4q9AVw+Gpw+Gtt+Gxt+G1w+G5w+G9wAYBA9A7yvdcL//hicPhjcPhmf/hh4t74RpLyM5Nx+Gbi0x/0BFlvAgHTB9H4RSBuGgH8kjBw3vhCuvLgZCFvEMIAIJcwIW8QgCC73vLgdfgAXyFwcCNvIjGAIPQO8rLXC//4aiJvEHCbUwG5IJUwIoAgud6ONFMEbyIxgCD0DvKy1wv/IPhNgQEA9A4gkTHes44UUzOkNSH4TVUByMsHWYEBAPRD+G3eMKToMFMSu5EhGwBykSLi+G8h+G5fBvhCyMv/+EPPCz/4Rs8LAPhK+Ev4TvhP+Ez4TV5Qy//L/8sHywf0APQAye1Uf/hnAgEgKR0CASAlHgIBZiIfAZmwAbCz8ILdHFXaiaGn/6Z/pgGn/6f/pg+mD+gJ6Avw2/DZ8N/w3fDX8NT/8MPwzfDH8MW9ouDa3gXwmwICAekNKgOuFg7/JuDg4cUiQSAB/o43VHMSbwJvIsgizwsHIc8L/zExAW8iIaQDWYAg9ENvAjQi+E2BAQD0fJUB1wsHf5NwcHDiAjUzMehfA8iCEFsA2FmCEIAAAACxzwsfIW8iAssf9ADIglhgAAAAAAAAAAAAAAAAzwtmIc8xgQOYuZZxz0AhzxeVcc9BIc3iIMkhAHJx+wBbMMD/jiz4QsjL//hDzws/+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sH9AD0AMntVN5/+GcBB7DIGekjAf74QW6OKu1E0NP/0z/TANP/0//TB9MH9AT0Bfht+Gz4b/hu+Gv4an/4Yfhm+GP4Yt7U0ciCEH1ynMiCEH////+wzwsfIc8UyIJYYAAAAAAAAAAAAAAAAM8LZiHPMYEDmLmWcc9AIc8XlXHPQSHN4iDJcfsAWzD4QsjL//hDzws/JABK+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sH9AD0AMntVH/4ZwG7ticDQ34QW6OKu1E0NP/0z/TANP/0//TB9MH9AT0Bfht+Gz4b/hu+Gv4an/4Yfhm+GP4Yt7RcG1vAnBw+EyAQPSGjhoB0z/TH9MH0wfT/9MH+kDTf9MP1NcKAG8Lf4CYBcI4vcF9gjQhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcHDIyXBvC3DiAjQwMZEgJwH8jmxfIsjLPwFvIiGkA1mAIPRDbwIzIfhMgED0fI4aAdM/0x/TB9MH0//TB/pA03/TD9TXCgBvC3+OL3BfYI0IYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHBwyMlwbwtw4gI0MDHoW8iCEFCcDQ2CEIAAAACxKADczwsfIW8iAssf9ADIglhgAAAAAAAAAAAAAAAAzwtmIc8xgQOYuZZxz0AhzxeVcc9BIc3iIMlx+wBbMMD/jiz4QsjL//hDzws/+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sH9AD0AMntVN5/+GcBCbmdzI2QKgH8+EFujirtRNDT/9M/0wDT/9P/0wfTB/QE9AX4bfhs+G/4bvhr+Gp/+GH4Zvhj+GLe+kGV1NHQ+kDf1w1/ldTR0NN/39cMAJXU0dDSAN/XDQeV1NHQ0wff1NH4TsAB8uBs+EUgbpIwcN74Srry4GT4AFRzQsjPhYDKAHPPQM4BKwCu+gKAas9AIdDIzgEhzzEhzzW8lM+DzxGUz4HPE+LJIvsAXwXA/44s+ELIy//4Q88LP/hGzwsA+Er4S/hO+E/4TPhNXlDL/8v/ywfLB/QA9ADJ7VTef/hnAgFIQS0CASA2LgIBIDEvAce18Chx6Y/pg+i4L5EvmLjaj5FWWGGAKqAvgqqILeRBCA/wKHHBCEAAAABY54WPkOeFAGRBLDAAAAAAAAAAAAAAAABnhbMQ55jAgcxcyzjnoBDni8q456CQ5vEQZLj9gC2YYH/AMABkjiz4QsjL//hDzws/+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sH9AD0AMntVN5/+GcBrbVToHb8ILdHFXaiaGn/6Z/pgGn/6f/pg+mD+gJ6Avw2/DZ8N/w3fDX8NT/8MPwzfDH8MW9pn+j8IpA3SRg4bxB8JsCAgHoHEEoA64WDyLhxEPlwMhiYwDICoI6A2CH4TIBA9A4gjhkB0z/TH9MH0wfT/9MH+kDTf9MP1NcKAG8LkW3iIfLgZiBvESNfMXG1HyKssMMAVTBfBLPy4Gf4AFRzAiFvE6QibxK+PjMBqo5TIW8XIm8WI28ayM+FgMoAc89AzgH6AoBqz0AibxnQyM4BIc8xIc81vJTPg88RlM+BzxPiySJvGPsA+EsibxUhcXgjqKyhMTH4ayL4TIBA9Fsw+Gw0Af6OVSFvESFxtR8hrCKxMjAiAW9RMlMRbxOkb1MyIvhMI28ryCvPCz8qzwsfKc8LByjPCwcnzwv/Js8LByXPFiTPC38jzwsPIs8UIc8KAAtfC1mAQPRD+GziXwf4QsjL//hDzws/+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sHNQAU9AD0AMntVH/4ZwG9tsdgs34QW6OKu1E0NP/0z/TANP/0//TB9MH9AT0Bfht+Gz4b/hu+Gv4an/4Yfhm+GP4Yt76QZXU0dD6QN/XDX+V1NHQ03/f1wwAldTR0NIA39cMAJXU0dDSAN/U0XCA3AeyOgNjIghATHYLNghCAAAAAsc8LHyHPCz/IglhgAAAAAAAAAAAAAAAAzwtmIc8xgQOYuZZxz0AhzxeVcc9BIc3iIMlx+wBbMPhCyMv/+EPPCz/4Rs8LAPhK+Ev4TvhP+Ez4TV5Qy//L/8sHywf0APQAye1Uf/hnOAGq+EUgbpIwcN5fIPhNgQEA9A4glAHXCweRcOIh8uBkMTEmgggPQkC+8uBrI9BtAXBxjhEi10qUWNVapJUC10mgAeIibuZYMCGBIAC5IJQwIMEI3vLgeTkC3I6A2PhLUzB4IqitgQD/sLUHMTF1ufLgcfgAU4ZycbEhnTBygQCAsfgnbxC1fzPeUwJVIV8D+E8gwAGOMlRxysjPhYDKAHPPQM4B+gKAas9AKdDIzgEhzzEhzzW8lM+DzxGUz4HPE+LJI/sAXw1wPjoBCo6A4wTZOwF0+EtTYHF4I6isoDEx+Gv4I7U/gCCs+CWCEP////+wsSBwI3BfK1YTU5pWElYVbwtfIVOQbxOkIm8SvjwBqo5TIW8XIm8WI28ayM+FgMoAc89AzgH6AoBqz0AibxnQyM4BIc8xIc81vJTPg88RlM+BzxPiySJvGPsA+EsibxUhcXgjqKyhMTH4ayL4TIBA9Fsw+Gw9ALyOVSFvESFxtR8hrCKxMjAiAW9RMlMRbxOkb1MyIvhMI28ryCvPCz8qzwsfKc8LByjPCwcnzwv/Js8LByXPFiTPC38jzwsPIs8UIc8KAAtfC1mAQPRD+GziXwMhD18PAfT4I7U/gQ4QoYAgrPhMgED0ho4aAdM/0x/TB9MH0//TB/pA03/TD9TXCgBvC3+OL3BfYI0IYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHBwyMlwbwtw4l8glDBTI7veILOSXwXg+ABwmVMRlTAggCi53j8B/o59pPhLJG8VIXF4I6isoTEx+Gsk+EyAQPRbMPhsJPhMgED0fI4aAdM/0x/TB9MH0//TB/pA03/TD9TXCgBvC3+OL3BfYI0IYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHBwyMlwbwtw4gI3NTNTIpQwU0W73jJAAGLo+ELIy//4Q88LP/hGzwsA+Er4S/hO+E/4TPhNXlDL/8v/ywfLB/QA9ADJ7VT4D18GAgEgRUIB27a2aCO+EFujirtRNDT/9M/0wDT/9P/0wfTB/QE9AX4bfhs+G/4bvhr+Gp/+GH4Zvhj+GLe0z/RcF9QjQhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcHDIyXBvCyH4TIBA9A4ggQwH+jhkB0z/TH9MH0wfT/9MH+kDTf9MP1NcKAG8LkW3iIfLgZiAzVQJfA8iCEArZoI6CEIAAAACxzwsfIW8rVQorzws/Ks8LHynPCwcozwsHJ88L/ybPCwclzxYkzwt/I88LDyLPFCHPCgALXwvIglhgAAAAAAAAAAAAAAAAzwtmIUQAns8xgQOYuZZxz0AhzxeVcc9BIc3iIMlx+wBbMMD/jiz4QsjL//hDzws/+EbPCwD4SvhL+E74T/hM+E1eUMv/y//LB8sH9AD0AMntVN5/+GcAattwIccAnSLQc9ch1wsAwAGQkOLgIdcNH5DhUxHAAJDgwQMighD////9vLGQ4AHwAfhHbpDe",
"unlimited_balance": true
},
"abi": {
"type": "Contract",
"value": {
"ABI version": 2,
"header": [
"pubkey",
"time",
"expire"
],
"functions": [
{
"name": "constructor",
"inputs": [
{
"name": "owners",
"type": "uint256[]"
},
{
"name": "reqConfirms",
"type": "uint8"
}
],
"outputs": []
},
{
"name": "acceptTransfer",
"inputs": [
{
"name": "payload",
"type": "bytes"
}
],
"outputs": []
},
{
"name": "sendTransaction",
"inputs": [
{
"name": "dest",
"type": "address"
},
{
"name": "value",
"type": "uint128"
},
{
"name": "bounce",
"type": "bool"
},
{
"name": "flags",
"type": "uint8"
},
{
"name": "payload",
"type": "cell"
}
],
"outputs": []
},
{
"name": "submitTransaction",
"inputs": [
{
"name": "dest",
"type": "address"
},
{
"name": "value",
"type": "uint128"
},
{
"name": "bounce",
"type": "bool"
},
{
"name": "allBalance",
"type": "bool"
},
{
"name": "payload",
"type": "cell"
}
],
"outputs": [
{
"name": "transId",
"type": "uint64"
}
]
},
{
"name": "confirmTransaction",
"inputs": [
{
"name": "transactionId",
"type": "uint64"
}
],
"outputs": []
},
{
"name": "isConfirmed",
"inputs": [
{
"name": "mask",
"type": "uint32"
},
{
"name": "index",
"type": "uint8"
}
],
"outputs": [
{
"name": "confirmed",
"type": "bool"
}
]
},
{
"name": "getParameters",
"inputs": [],
"outputs": [
{
"name": "maxQueuedTransactions",
"type": "uint8"
},
{
"name": "maxCustodianCount",
"type": "uint8"
},
{
"name": "expirationTime",
"type": "uint64"
},
{
"name": "minValue",
"type": "uint128"
},
{
"name": "requiredTxnConfirms",
"type": "uint8"
}
]
},
{
"name": "getTransaction",
"inputs": [
{
"name": "transactionId",
"type": "uint64"
}
],
"outputs": [
{
"components": [
{
"name": "id",
"type": "uint64"
},
{
"name": "confirmationsMask",
"type": "uint32"
},
{
"name": "signsRequired",
"type": "uint8"
},
{
"name": "signsReceived",
"type": "uint8"
},
{
"name": "creator",
"type": "uint256"
},
{
"name": "index",
"type": "uint8"
},
{
"name": "dest",
"type": "address"
},
{
"name": "value",
"type": "uint128"
},
{
"name": "sendFlags",
"type": "uint16"
},
{
"name": "payload",
"type": "cell"
},
{
"name": "bounce",
"type": "bool"
}
],
"name": "trans",
"type": "tuple"
}
]
},
{
"name": "getTransactions",
"inputs": [],
"outputs": [
{
"components": [
{
"name": "id",
"type": "uint64"
},
{
"name": "confirmationsMask",
"type": "uint32"
},
{
"name": "signsRequired",
"type": "uint8"
},
{
"name": "signsReceived",
"type": "uint8"
},
{
"name": "creator",
"type": "uint256"
},
{
"name": "index",
"type": "uint8"
},
{
"name": "dest",
"type": "address"
},
{
"name": "value",
"type": "uint128"
},
{
"name": "sendFlags",
"type": "uint16"
},
{
"name": "payload",
"type": "cell"
},
{
"name": "bounce",
"type": "bool"
}
],
"name": "transactions",
"type": "tuple[]"
}
]
},
{
"name": "getTransactionIds",
"inputs": [],
"outputs": [
{
"name": "ids",
"type": "uint64[]"
}
]
},
{
"name": "getCustodians",
"inputs": [],
"outputs": [
{
"components": [
{
"name": "index",
"type": "uint8"
},
{
"name": "pubkey",
"type": "uint256"
}
],
"name": "custodians",
"type": "tuple[]"
}
]
}
],
"data": [],
"events": [
{
"name": "TransferAccepted",
"inputs": [
{
"name": "payload",
"type": "bytes"
}
],
"outputs": []
}
]
}
},
"skip_transaction_check": false,
"return_updated_account": false
}
gives this error -
"Error: 18446744073697658955 can't be represented as a JavaScript number"
I decoded this message – it is a sendTransaction
function invocation.
When I called the run_executor
I've received the message expired
error.
I added the execution_options
with block_time
equal to 1642099654 (slightly greater than the message expiration time).
After that I successfully ran the run_executor
. The transaction produced single out message (is a token transfer message). This message isn't match the abi so it isn't decoded.
I can't reproduce this error.
run_executor called successfully.
I added the execution_options with block_time equal to 1642099654 (slightly greater than the message expiration time).
But if not add this, then you will see the error from the previous message. Yes, the is multisign wallet and there can be "expired" transaction. Just several versions ago all was ok. We have tried to use 1.28
If you will increase "block_time", then you will get "expired", if reduce, then "Replay protection exception". But when you will try without "execution_options", then you will see "Error: 18446744073697658955 can't be represented as a JavaScript number"
Thank you for additional info, we will check it @pertinaxwallet
@pertinaxwallet We've checked all ever-sdk-js versions from 1.20 to 1.30 and couldn't reproduce the error (SDK returns expected error about message expiration). Could you create some small reproducer and give us a link to try?
https://github.com/pertinaxwallet/demo-ever-sdk-js-issues-325 - demo is here, just replace variables to generate a fresh message. You couldn't to reproduce, because the message was already encoded in the past.
Now you will be able to test this issue.
To fix it need to set "unlimited_balance" in false, but by logic "unlimited_balance" must be true for fee estimation.
@pertinaxwallet Fixed in the 1.34.0 release