trufflesuite / ganache

:warning: The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over the years.
https://consensys.io/blog/consensys-announces-the-sunset-of-truffle-and-ganache-and-new-hardhat?utm_source=github&utm_medium=referral&utm_campaign=2023_Sep_truffle-sunset-2023_announcement_
MIT License
2.62k stars 676 forks source link

sending transactions with "eth_sendRawTransaction" yeilds "intrinsic gas too low" #4146

Closed benams closed 1 year ago

benams commented 1 year ago

Using ganache@7.7.2 javascript provider, I tried to send 2 different raw transactions:

  1. https://etherscan.io/tx/0x4ed432c9971962e78700e5e5bea52be58d106e5012b9cfc00d1beb2ce14d03a1
  2. https://etherscan.io/tx/0xa50c8224f00d0df312983262f9f62a38caf1439f80125c57ec374366b2ed8db3
const provider = ganache.provider({
        fork: { network: "mainnet", blockNumber: 16341084 },
        wallet: {
            unlockedAccounts: [
                "0xa21740833858985e4d801533a808786d3647fb83", // senderAddresses
                "0x5b5a922e065a425ee7e9b70185ba563ef270afcd"
            ]
        },
        // miner: {
        //     defaultGasPrice: 0,
        //     defaultTransactionGasLimit: 0,
        //     callGasLimit: 0
        // }
    });
const rawTransaction =           "0x13d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000e209f9dcd124e01a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003928d9830844f5e58aac234be6c45c68ac1a267200000000000000000000000000000000000000000021db8c156d714072000000000000000000000000000000000000000000000000000000005936a94a5153f30000000000000000000000000000000000000000000000000000000063b6f100e9f29ae547955463ed535162aefee525d8d309571a2b18bc26086c8c35d781eb00000000000000000000000000000000000000000007805d58f6952900000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000021db8c156d71407200000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041a401fac3361134a8d2c90ab2df957c777f74891be3625bae0e1849f716c2c0de26982b7c0f5dd301895dd79b02789019223bf70181b0bc3e62fcf43cb153dbfe1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e40b86a4c1000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a00000000000000000000000000000000000000000021db8c156d7140720000000000000000000000000000000000000000000000000000000058d5577661ec90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000004de4e351c5517da206948e678018b98f248fa6759e5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";

const result = await provider.request({
        method: "eth_sendRawTransaction",
        params: [Buffer.from(rawTransaction, 'hex')]
    });

yeileds:

eth_sendRawTransaction
webpack://Ganache/../../chains/ethereum/ethereum/lib/src/transaction-pool.js:127
                return new ethereum_utils_1.CodedError(ethereum_utils_1.INTRINSIC_GAS_TOO_LOW, utils_2.JsonRpcErrorCode.INVALID_INPUT);
                       ^
CodedError: intrinsic gas too low
    at TransactionPool.call (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/transaction-pool.js:127:24)
    at TransactionPool.prepareTransaction (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/transaction-pool.js:146:87)
    at TransactionManager.add (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/data-managers/transaction-manager.js:108:48)
    at Blockchain.queueTransaction (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/blockchain.js:939:55)
    at EthereumApi.apply (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/api.js:1717:27)
    at EthereumApi.apply (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/helpers/assert-arg-length.js:14:28)
    at Object.execute (webpack://Ganache/../utils/lib/src/utils/request-coordinator.js:80:47)
    at RequestCoordinator.call (webpack://Ganache/../utils/lib/src/utils/request-coordinator.js:59:22)
    at webpack://Ganache/../utils/lib/src/utils/request-coordinator.js:89:80
    at new Promise (<anonymous>)
    at RequestCoordinator.queue (webpack://Ganache/../utils/lib/src/utils/request-coordinator.js:76:20)
    at Executor.execute (webpack://Ganache/../utils/lib/src/utils/executor.js:68:92)
    at EthereumProvider._requestRaw (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/provider.js:259:92)
    at EthereumProvider.request (webpack://Ganache/../../chains/ethereum/ethereum/lib/src/provider.js:247:38)
    at sendRawTransaction (/Users/benamsalem/proj/fireblocks/transaction-simulator/src/ganache.ts:268:35)
    at Subscription.<anonymous> (/Users/benamsalem/proj/fireblocks/transaction-simulator/src/ganache.ts:57:43) {
  code: -32000
}

Any ideas what I can change?

davidmurdoch commented 1 year ago
0x13d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000e209f9dcd124e01a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003928d9830844f5e58aac234be6c45c68ac1a267200000000000000000000000000000000000000000021db8c156d714072000000000000000000000000000000000000000000000000000000005936a94a5153f30000000000000000000000000000000000000000000000000000000063b6f100e9f29ae547955463ed535162aefee525d8d309571a2b18bc26086c8c35d781eb00000000000000000000000000000000000000000007805d58f6952900000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000021db8c156d71407200000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041a401fac3361134a8d2c90ab2df957c777f74891be3625bae0e1849f716c2c0de26982b7c0f5dd301895dd79b02789019223bf70181b0bc3e62fcf43cb153dbfe1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e40b86a4c1000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a00000000000000000000000000000000000000000021db8c156d7140720000000000000000000000000000000000000000000000000000000058d5577661ec90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000004de4e351c5517da206948e678018b98f248fa6759e5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

isn't a raw transaction, it's only the data field of a transaction. I think this is the raw transaction you are looking for: https://etherscan.io/getRawTx?tx=0x4ed432c9971962e78700e5e5bea52be58d106e5012b9cfc00d1beb2ce14d03a1

For starting Ganache in this scenario i think these are the options you'll want:

ganache --fork mainnet --fork.blockNumber 16341084 --wallet.unlockedAccounts 0xa21740833858985e4d801533a808786d3647fb83 --chain.chainId=1 --chain.time="Jan-05-2023 02:08:11 PM UTC" --miner.timestampIncrement=13

And the RPC call is:

curl -s -H "Content-Type: application/json" -X POST --data '[{"id":1,"jsonrpc":"2.0","method": "evm_revert","params":["0x1"]},{"id":2,"jsonrpc":"2.0","method": "eth_sendRawTransaction","params":[ "0x02f90a570182437c841c84cab1850acd73e4a5830522f4949008d19f58aabd9ed0d60971565aa8510560ab4180b905c413d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000e209f9dcd124e01a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003928d9830844f5e58aac234be6c45c68ac1a267200000000000000000000000000000000000000000021db8c156d714072000000000000000000000000000000000000000000000000000000005936a94a5153f30000000000000000000000000000000000000000000000000000000063b6f100e9f29ae547955463ed535162aefee525d8d309571a2b18bc26086c8c35d781eb00000000000000000000000000000000000000000007805d58f6952900000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000021db8c156d71407200000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041a401fac3361134a8d2c90ab2df957c777f74891be3625bae0e1849f716c2c0de26982b7c0f5dd301895dd79b02789019223bf70181b0bc3e62fcf43cb153dbfe1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e40b86a4c1000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a00000000000000000000000000000000000000000021db8c156d7140720000000000000000000000000000000000000000000000000000000058d5577661ec90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000004de4e351c5517da206948e678018b98f248fa6759e5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f90421f859942c4c28ddbdac9c5e7055b4c863b72ea0149d8afef842a0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca034649aa282e0e8132f3d7cf73f7949d459949e828bcceac8be09b917eff48f86d6949e7ae8bdba9aa346739792d219a808884996db67c0d694c92e8bdf79f0507f65a392b0ab4667716bfe0110c0f87a94ba12222222228d8ba445958a75a0704d566bf2c8f863a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000003a09310f2792dc269bafe3cd1469ce14173f6aa424342fc63512e2cb1166e3b1e3af794a331d84ec860bf466b4cdccfb4ac09a1b43f3ae6e1a0270125e0fc8d215b28bacbe4ec21164c8d28ead21433ef58d373989c028dc3f8f8bc94243cacb4d5ff6814ad668c3e225246efa886ad5af8a5a0315bbfbf6b9b0a46f5deea1f1c11bc86387f6dee9d890ede68a848ccfca8fe74a0618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66a006b9b30cb0f47f08c77732553941d7651f226b08117990490e976a0cecdc5683a0f4c5b68a2aafb672fa1503daf2bdda789022230c23e8186e108161cbf623c118a0e80eed10abfcc2587d2ee391a86f087a3866245c568ee44d4162c74e60de6241f85994def171fe48cf0115b1d80b88dc8eab59176fee57f842a0d8bf1dcdb9145fe06606b28c2f5f19fb2e0210e48d649ca91c3ce0c77648e491a00000000000000000000000000000000000000000000000000000000000000000d6944ff0dec5f9a763aa1e5c2a962aa6f4edfee4f9eac0f794216b4b4ba9f3e719726886d34a177484278bfcaee1a00000000000000000000000000000000000000000000000000000000000000000f8fe94e351c5517da206948e678018b98f248fa6759e5af8e7a00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000af87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a00d31af92994bebd9cbed4b2276d0c6cb372560f0832a5e171d21532dafb893e4a09d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dca09f44d7a2c9e2c6ed4f2f584f100c195ec85712d694c6afa9dc2ec057d4f07eed80a0be5af43ac225fabe14d77c1c4b770bf31b6fc5e02d2c63024980d088a56535f0a0415450e598eabd04ea42a23a913c68a052fb1a52b5b8349ea59370823299c95e" ]}]' http://127.0.0.1:8545

or in JS:

provider.request({method: "eth_sendRawTransaction", params: ["0x02f90a570182437c841c84cab1850acd73e4a5830522f4949008d19f58aabd9ed0d60971565aa8510560ab4180b905c413d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000e209f9dcd124e01a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003928d9830844f5e58aac234be6c45c68ac1a267200000000000000000000000000000000000000000021db8c156d714072000000000000000000000000000000000000000000000000000000005936a94a5153f30000000000000000000000000000000000000000000000000000000063b6f100e9f29ae547955463ed535162aefee525d8d309571a2b18bc26086c8c35d781eb00000000000000000000000000000000000000000007805d58f6952900000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000021db8c156d71407200000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041a401fac3361134a8d2c90ab2df957c777f74891be3625bae0e1849f716c2c0de26982b7c0f5dd301895dd79b02789019223bf70181b0bc3e62fcf43cb153dbfe1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e40b86a4c1000000000000000000000000243cacb4d5ff6814ad668c3e225246efa886ad5a00000000000000000000000000000000000000000021db8c156d7140720000000000000000000000000000000000000000000000000000000058d5577661ec90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000004de4e351c5517da206948e678018b98f248fa6759e5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f90421f859942c4c28ddbdac9c5e7055b4c863b72ea0149d8afef842a0360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca034649aa282e0e8132f3d7cf73f7949d459949e828bcceac8be09b917eff48f86d6949e7ae8bdba9aa346739792d219a808884996db67c0d694c92e8bdf79f0507f65a392b0ab4667716bfe0110c0f87a94ba12222222228d8ba445958a75a0704d566bf2c8f863a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000003a09310f2792dc269bafe3cd1469ce14173f6aa424342fc63512e2cb1166e3b1e3af794a331d84ec860bf466b4cdccfb4ac09a1b43f3ae6e1a0270125e0fc8d215b28bacbe4ec21164c8d28ead21433ef58d373989c028dc3f8f8bc94243cacb4d5ff6814ad668c3e225246efa886ad5af8a5a0315bbfbf6b9b0a46f5deea1f1c11bc86387f6dee9d890ede68a848ccfca8fe74a0618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66a006b9b30cb0f47f08c77732553941d7651f226b08117990490e976a0cecdc5683a0f4c5b68a2aafb672fa1503daf2bdda789022230c23e8186e108161cbf623c118a0e80eed10abfcc2587d2ee391a86f087a3866245c568ee44d4162c74e60de6241f85994def171fe48cf0115b1d80b88dc8eab59176fee57f842a0d8bf1dcdb9145fe06606b28c2f5f19fb2e0210e48d649ca91c3ce0c77648e491a00000000000000000000000000000000000000000000000000000000000000000d6944ff0dec5f9a763aa1e5c2a962aa6f4edfee4f9eac0f794216b4b4ba9f3e719726886d34a177484278bfcaee1a00000000000000000000000000000000000000000000000000000000000000000f8fe94e351c5517da206948e678018b98f248fa6759e5af8e7a00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000af87a94c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f863a00d31af92994bebd9cbed4b2276d0c6cb372560f0832a5e171d21532dafb893e4a09d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dca09f44d7a2c9e2c6ed4f2f584f100c195ec85712d694c6afa9dc2ec057d4f07eed80a0be5af43ac225fabe14d77c1c4b770bf31b6fc5e02d2c63024980d088a56535f0a0415450e598eabd04ea42a23a913c68a052fb1a52b5b8349ea59370823299c95e"]});