# Precomputed Calls Add `precomputedCalls` as a third option to `state` and `stateDiff`. This would be a simple, gas-perfect, mapping of input data to output data with no calculations. It is an array of `precomputedCall` objects * `input` - either a hex string or `"*"`. The former must match the call exactly, and the latter matches all calls. * `output` - the resulting output bytes as hex. If absent it is presumed to be zero bytes. * `gas` - The gas to charge for the call. If there is not enough gas passed in as part of the call then standard OutOfGas handling applies. If absent `MAX_GAS` is presumed. (alternately, required) * `status` - If the call should fail a `0x0` should be present. If it passes `0x1`. For success calls output is the result, for failed it is the revert data. For each address only one wildcard is permitted, and only one `input` per mapping is permitted. (alternately, we could structure this as a map where input is key, but it would reduce readability) ```json { "jsonrpc": "2.0", "id": 1, "method": "eth_multicallV1", "params": [ { "blockStateCalls": [ { "stateOverrides": { "0x0000000000000000000000000000000000000001": { "precomputedCalls" : [ { "input": "0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9", "output":"0xb11cad98ad3f8114e0b3a1f6e7228bc8424df48a", "gas":3000 }, { "input": "0x456e9aea5e197a1f1af7a3e85a3212fa4049a3ba34c2289b4c860fc0b0c64ef3000000000000000000000000000000000000000000000000000000000000001c9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac80388256084f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada", "output":"0x7156526fbd7a3c72969b54f64e42c10fbb768c8a", "gas":3000 }, { "input": "*", "otuput": "0x", "gas":3000, "status": "0x0" } ] }, "0xc100000000000000000000000000000000000000": { "balance": "0x30d40" } }, "calls": [ { "from": "0xc100000000000000000000000000000000000000", "to": "0x0000000000000000000000000000000000000001", "input": "0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9" }, { "from": "0xc100000000000000000000000000000000000000", "to": "0x0000000000000000000000000000000000000001", "input": "0x0badca11" } ] } ] }, "latest" ] } ``` result ```json { "jsonrpc": "2.0", "id": 1, "result": [ { "number": "0x4", "hash": "0x9a19680b1e4b0307f4199ecdafe36c9c328d3c331e682e66c52a5694cee5f20b", "timestamp": "0x1f", "gasLimit": "0x4c4b40", "gasUsed": "0x2dbc4", "feeRecipient": "0x0000000000000000000000000000000000000000", "baseFeePerGas": "0x2310a91d", "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", "calls": [ { "returnData": "0xb11cad98ad3f8114e0b3a1f6e7228bc8424df48a", "logs": [], "gasUsed": "0x644c", // likely incorrect "status": "0x1" }, { "returnData": "0x", "logs": [], "gasUsed": "0xb4fe", // likely incorrect "status": "0x0" } ] } ] } ```