# 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"
}
]
}
]
}
```