/**
Generated by the following Solidity interface...
```solidity
interface Application {
struct OutputValidityProof {
uint64 outputIndex;
bytes32[] outputHashesSiblings;
}
error InsufficientFunds(uint256 value, uint256 balance);
error InvalidOutputHashesSiblingsArrayLength();
error InvalidOutputsMerkleRoot(bytes32 outputsMerkleRoot);
error OutputNotExecutable(bytes output);
error OutputNotReexecutable(bytes output);
error OwnableInvalidOwner(address owner);
error OwnableUnauthorizedAccount(address account);
error ReentrancyGuardReentrantCall();
event OutputExecuted(uint64 outputIndex, bytes output);
event OutputsMerkleRootValidatorChanged(address newOutputsMerkleRootValidator);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor(address outputsMerkleRootValidator, address initialOwner, bytes32 templateHash, bytes dataAvailability);
receive() external payable;
function executeOutput(bytes memory output, OutputValidityProof memory proof) external;
function getDataAvailability() external view returns (bytes memory);
function getDeploymentBlockNumber() external view returns (uint256);
function getNumberOfExecutedOutputs() external view returns (uint256);
function getOutputsMerkleRootValidator() external view returns (address);
function getTemplateHash() external view returns (bytes32);
function migrateToOutputsMerkleRootValidator(address newOutputsMerkleRootValidator) external;
function onERC1155BatchReceived(address, address, uint256[] memory, uint256[] memory, bytes memory) external returns (bytes4);
function onERC1155Received(address, address, uint256, uint256, bytes memory) external returns (bytes4);
function onERC721Received(address, address, uint256, bytes memory) external returns (bytes4);
function owner() external view returns (address);
function renounceOwnership() external;
function supportsInterface(bytes4 interfaceId) external view returns (bool);
function transferOwnership(address newOwner) external;
function validateOutput(bytes memory output, OutputValidityProof memory proof) external view;
function validateOutputHash(bytes32 outputHash, OutputValidityProof memory proof) external view;
function wasOutputExecuted(uint256 outputIndex) external view returns (bool);
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "constructor",
"inputs": [
{
"name": "outputsMerkleRootValidator",
"type": "address",
"internalType": "contract IOutputsMerkleRootValidator"
},
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "templateHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "dataAvailability",
"type": "bytes",
"internalType": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
},
{
"type": "function",
"name": "executeOutput",
"inputs": [
{
"name": "output",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "proof",
"type": "tuple",
"internalType": "struct OutputValidityProof",
"components": [
{
"name": "outputIndex",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "outputHashesSiblings",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getDataAvailability",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getDeploymentBlockNumber",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getNumberOfExecutedOutputs",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOutputsMerkleRootValidator",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IOutputsMerkleRootValidator"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getTemplateHash",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "migrateToOutputsMerkleRootValidator",
"inputs": [
{
"name": "newOutputsMerkleRootValidator",
"type": "address",
"internalType": "contract IOutputsMerkleRootValidator"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "onERC1155BatchReceived",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "onERC1155Received",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "onERC721Received",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "validateOutput",
"inputs": [
{
"name": "output",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "proof",
"type": "tuple",
"internalType": "struct OutputValidityProof",
"components": [
{
"name": "outputIndex",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "outputHashesSiblings",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
]
}
],
"outputs": [],
"stateMutability": "view"
},
{
"type": "function",
"name": "validateOutputHash",
"inputs": [
{
"name": "outputHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "proof",
"type": "tuple",
"internalType": "struct OutputValidityProof",
"components": [
{
"name": "outputIndex",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "outputHashesSiblings",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
]
}
],
"outputs": [],
"stateMutability": "view"
},
{
"type": "function",
"name": "wasOutputExecuted",
"inputs": [
{
"name": "outputIndex",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "OutputExecuted",
"inputs": [
{
"name": "outputIndex",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
},
{
"name": "output",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OutputsMerkleRootValidatorChanged",
"inputs": [
{
"name": "newOutputsMerkleRootValidator",
"type": "address",
"indexed": false,
"internalType": "contract IOutputsMerkleRootValidator"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "error",
"name": "InsufficientFunds",
"inputs": [
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "InvalidOutputHashesSiblingsArrayLength",
"inputs": []
},
{
"type": "error",
"name": "InvalidOutputsMerkleRoot",
"inputs": [
{
"name": "outputsMerkleRoot",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"type": "error",
"name": "OutputNotExecutable",
"inputs": [
{
"name": "output",
"type": "bytes",
"internalType": "bytes"
}
]
},
{
"type": "error",
"name": "OutputNotReexecutable",
"inputs": [
{
"name": "output",
"type": "bytes",
"internalType": "bytes"
}
]
},
{
"type": "error",
"name": "OwnableInvalidOwner",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "OwnableUnauthorizedAccount",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ReentrancyGuardReentrantCall",
"inputs": []
}
]
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod Application {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x60c0604052346102b8576111bd80380380610019816102bc565b9283398101906080818303126102b85780516001600160a01b03811691908290036102b85760208101516001600160a01b038116908190036102b8576040820151606083015190926001600160401b0382116102b8570184601f820112156102b8578051906001600160401b0382116102915761009f601f8301601f19166020016102bc565b95828752602083830101116102b857815f9260208093018389015e8601015280156102a5575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600180554360805260a052600380546001600160a01b03191691909117905580516001600160401b03811161029157600454600181811c91168015610287575b602082101461027357601f8111610210575b50602091601f82116001146101b0579181925f926101a5575b50508160011b915f199060031b1c1916176004555b604051610edb90816102e2823960805181610687015260a051816105670152f35b015190505f8061016f565b601f1982169260045f52805f20915f5b8581106101f8575083600195106101e0575b505050811b01600455610184565b01515f1960f88460031b161c191690555f80806101d2565b919260206001819286850151815501940192016101c0565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610269575b601f0160051c01905b81811061025e5750610156565b5f8155600101610251565b9091508190610248565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610144565b634e487b7160e01b5f52604160045260245ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102915760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\xC0`@R4a\x02\xB8Wa\x11\xBD\x808\x03\x80a\0\x19\x81a\x02\xBCV[\x92\x839\x81\x01\x90`\x80\x81\x83\x03\x12a\x02\xB8W\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x91\x90\x82\x90\x03a\x02\xB8W` \x81\x01Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x90\x81\x90\x03a\x02\xB8W`@\x82\x01Q``\x83\x01Q\x90\x92`\x01`\x01`@\x1B\x03\x82\x11a\x02\xB8W\x01\x84`\x1F\x82\x01\x12\x15a\x02\xB8W\x80Q\x90`\x01`\x01`@\x1B\x03\x82\x11a\x02\x91Wa\0\x9F`\x1F\x83\x01`\x1F\x19\x16` \x01a\x02\xBCV[\x95\x82\x87R` \x83\x83\x01\x01\x11a\x02\xB8W\x81_\x92` \x80\x93\x01\x83\x89\x01^\x86\x01\x01R\x80\x15a\x02\xA5W_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x83\x17\x82U`\x01`\x01`\xA0\x1B\x03\x16\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90\x80\xA3`\x01\x80UC`\x80R`\xA0R`\x03\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x90\x91\x17\x90U\x80Q`\x01`\x01`@\x1B\x03\x81\x11a\x02\x91W`\x04T`\x01\x81\x81\x1C\x91\x16\x80\x15a\x02\x87W[` \x82\x10\x14a\x02sW`\x1F\x81\x11a\x02\x10W[P` \x91`\x1F\x82\x11`\x01\x14a\x01\xB0W\x91\x81\x92_\x92a\x01\xA5W[PP\x81`\x01\x1B\x91_\x19\x90`\x03\x1B\x1C\x19\x16\x17`\x04U[`@Qa\x0E\xDB\x90\x81a\x02\xE2\x829`\x80Q\x81a\x06\x87\x01R`\xA0Q\x81a\x05g\x01R\xF3[\x01Q\x90P_\x80a\x01oV[`\x1F\x19\x82\x16\x92`\x04_R\x80_ \x91_[\x85\x81\x10a\x01\xF8WP\x83`\x01\x95\x10a\x01\xE0W[PPP\x81\x1B\x01`\x04Ua\x01\x84V[\x01Q_\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U_\x80\x80a\x01\xD2V[\x91\x92` `\x01\x81\x92\x86\x85\x01Q\x81U\x01\x94\x01\x92\x01a\x01\xC0V[`\x04_R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B`\x1F\x83\x01`\x05\x1C\x81\x01\x91` \x84\x10a\x02iW[`\x1F\x01`\x05\x1C\x01\x90[\x81\x81\x10a\x02^WPa\x01VV[_\x81U`\x01\x01a\x02QV[\x90\x91P\x81\x90a\x02HV[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x90`\x7F\x16\x90a\x01DV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[c\x1EO\xBD\xF7`\xE0\x1B_R_`\x04R`$_\xFD[_\x80\xFD[`@Q\x91\x90`\x1F\x01`\x1F\x19\x16\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x02\x91W`@RV\xFE`\x80`@R`\x046\x10\x15a\0\x1AW[6\x15a\0\x18W_\x80\xFD[\0[_5`\xE0\x1C\x80c\x01\xFF\xC9\xA7\x14a\x01)W\x80c\x08\xEB\x89\xAB\x14a\x01$W\x80c\x15\x0Bz\x02\x14a\x01\x1FW\x80c3\x13{v\x14a\x01\x1AW\x80ca\xB1,f\x14a\x01\x15W\x80cqP\x18\xA6\x14a\x01\x10W\x80cq\x89\x1D\xB0\x14a\x01\x0BW\x80c\x8D\xA5\xCB[\x14a\x01\x06W\x80c\xA9M\xFCZ\x14a\x01\x01W\x80c\xB3\xA1\xAC\xD8\x14a\0\xFCW\x80c\xBC\x19|\x81\x14a\0\xF7W\x80c\xBF\x8A\xBF\xF8\x14a\0\xF2W\x80c\xE6O\xABM\x14a\0\xEDW\x80c\xE8\x8D9\xC0\x14a\0\xE8W\x80c\xF0$x\xDE\x14a\0\xE3W\x80c\xF2:na\x14a\0\xDEWc\xF2\xFD\xE3\x8B\x03a\0\x0EWa\t\xC6V[a\tmV[a\x08~V[a\x08=V[a\x08 V[a\x07\xAFV[a\x07\x11V[a\x06pV[a\x06HV[a\x06!V[a\x05\xE1V[a\x05\x8AV[a\x05PV[a\x03KV[a\x02\x86V[a\x01\x91V[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW`\x045c\xFF\xFF\xFF\xFF`\xE0\x1B\x81\x16\x80\x91\x03a\x01\x7FW` \x90c\x02q\x18\x97`\xE5\x1B\x81\x14\x90\x81\x15a\x01nW[P`@Q\x90\x15\x15\x81R\xF3[c\x01\xFF\xC9\xA7`\xE0\x1B\x14\x90P_a\x01cV[_\x80\xFD[\x90\x81`@\x91\x03\x12a\x01\x7FW\x90V[4a\x01\x7FW`@6`\x03\x19\x01\x12a\x01\x7FW`$5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x01\xC4a\0\x18\x916\x90`\x04\x01a\x01\x83V[`\x045a\nOV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x01\x7FWV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10`\x01`\x01`@\x1B\x03\x82\x11\x17a\x02\x12W`@RV[a\x01\xDDV[`\x01`\x01`@\x1B\x03\x81\x11a\x02\x12W`\x1F\x01`\x1F\x19\x16` \x01\x90V[\x92\x91\x92a\x02>\x82a\x02\x17V[\x91a\x02L`@Q\x93\x84a\x01\xF1V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x01\x7FW\x82\x81` \x93\x84_\x96\x017\x01\x01RV[\x90\x80`\x1F\x83\x01\x12\x15a\x01\x7FW\x81` a\x02\x83\x935\x91\x01a\x022V[\x90V[4a\x01\x7FW`\x806`\x03\x19\x01\x12a\x01\x7FWa\x02\xA2`\x045a\x01\xCCV[a\x02\xAD`$5a\x01\xCCV[`d5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x02\xCC\x906\x90`\x04\x01a\x02hV[P`@Qc\n\x85\xBD\x01`\xE1\x1B\x81R` \x90\xF3[`@`\x03\x19\x82\x01\x12a\x01\x7FW`\x045\x91`\x01`\x01`@\x1B\x03\x83\x11a\x01\x7FW\x81`#\x84\x01\x12\x15a\x01\x7FW\x82`\x04\x015\x92`\x01`\x01`@\x1B\x03\x84\x11a\x01\x7FW\x82`$\x85\x83\x01\x01\x11a\x01\x7FW`$\x01\x92\x91`$5\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FWa\x02\x83\x91`\x04\x01a\x01\x83V[4a\x01\x7FWa\x03Y6a\x02\xDFV[`\x02`\x01\x93\x92\x93T\x14a\x05AWa\x03\x7F\x90`\x02`\x01Ua\x03z\x81\x85\x85a\x0C\x0EV[a\x0B&V[`\x04\x83\x10a\x05$Wa\x03\x9Aa\x03\x94\x84\x84a\x0BkV[\x90a\x0B\x96V[a\x03\xA5\x84\x80\x85a\x0ByV[\x91`\x01`\x01`\xE0\x1B\x03\x19\x16c#z\x81o`\xE0\x1B\x81\x03a\x04\x95WPa\x03\xE9`\x01`\x01`@\x1B\x03\x84\x16`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[a\x04qW\x93a\x04\x1Ca\x04e\x92\x7F\xCA\xD1\xF3a\xC6\xE8Fd\xE8\x92#\x02\x91\xC8\xE8\xEB\x95Uh>\nj\\\xE8\xEA{ J\xC0\xAC6v\x96a\rMV[a\x04F`\x01`\x01`@\x1B\x03\x84\x16\x80`\x08\x1C_R`\x02` R`\x01`\xFF`@_ \x92\x16\x1B\x81T\x17\x90UV[a\x04Ya\x04T`\x05Ta\x0B\xCCV[`\x05UV[`@Q\x93\x84\x93\x84a\x0B\xEEV[\x03\x90\xA1a\0\x18`\x01\x80UV[PP`@Qc{\x97\xA6\xBB`\xE0\x1B\x81R\x92\x83\x92a\x04\x91\x92P`\x04\x84\x01a\x0BZV[\x03\x90\xFD[c\x102\x1E\x8B`\xE0\x1B\x03a\x05\x04Wa\x04\xCC`\x01`\x01`@\x1B\x03\x84\x16`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[a\x04qW\x93a\x04\xFFa\x04e\x92\x7F\xCA\xD1\xF3a\xC6\xE8Fd\xE8\x92#\x02\x91\xC8\xE8\xEB\x95Uh>\nj\\\xE8\xEA{ J\xC0\xAC6v\x96a\x0C\xE8V[a\x04\x1CV[PP`@QciB`\x0F`\xE1\x1B\x81R\x92\x83\x92a\x04\x91\x92P`\x04\x84\x01a\x0BZV[Pa\x04\x91`@Q\x92\x83\x92ciB`\x0F`\xE1\x1B\x84R`\x04\x84\x01a\x0BZV[c>\xE5\xAE\xB5`\xE0\x1B_R`\x04_\xFD[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FWa\x05\xA2a\r\xBDV[_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x82U`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x82\x80\xA3\0[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW` a\x06\x17`\x045`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[`@Q\x90\x15\x15\x81R\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW_T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW`\x03T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R\xF3[\x90\x80`\x1F\x83\x01\x12\x15a\x01\x7FW\x815\x91`\x01`\x01`@\x1B\x03\x83\x11a\x02\x12W\x82`\x05\x1B\x90`@Q\x93a\x06\xDD` \x84\x01\x86a\x01\xF1V[\x84R` \x80\x85\x01\x92\x82\x01\x01\x92\x83\x11a\x01\x7FW` \x01\x90[\x82\x82\x10a\x07\x01WPPP\x90V[\x815\x81R` \x91\x82\x01\x91\x01a\x06\xF4V[4a\x01\x7FW`\xA06`\x03\x19\x01\x12a\x01\x7FWa\x07-`\x045a\x01\xCCV[a\x078`$5a\x01\xCCV[`D5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07W\x906\x90`\x04\x01a\x06\xAAV[P`d5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07w\x906\x90`\x04\x01a\x06\xAAV[P`\x845`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07\x97\x906\x90`\x04\x01a\x02hV[P`@Qc\xBC\x19|\x81`\xE0\x1B\x81R\x80` \x81\x01[\x03\x90\xF3[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW\x7Fj\xD3\x18\x8B\xA8\xF40\xFB\xA0el\xB0\xA7\xE89\xAB \xD5Xk\xA1\x1A\x14w\xD1\x8Fp\x92\xF8\xBE\xCE`\x045a\x07\xED\x81a\x01\xCCV[a\x07\xF5a\r\xBDV[`\x03\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90U`@Q\x90\x81R` \x90\xA1\0[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `\x05T`@Q\x90\x81R\xF3[4a\x01\x7FWa\0\x18a\x08N6a\x02\xDFV[\x91a\x0C\x0EV[` `@\x92\x81\x83R\x80Q\x91\x82\x91\x82\x82\x86\x01R\x01\x84\x84\x01^_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW`@Q_`\x04T\x80`\x01\x1C\x90`\x01\x81\x16\x90\x81\x15a\tcW[` \x83\x10\x82\x14a\tOW\x82\x85R` \x85\x01\x91\x90\x81\x15a\t6WP`\x01\x14a\x08\xE4W[a\x07\xAB\x84a\x08\xD8\x81\x86\x03\x82a\x01\xF1V[`@Q\x91\x82\x91\x82a\x08TV[`\x04_\x90\x81R\x92P\x90\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B[\x81\x84\x10a\t\"WPP\x01a\x08\xD8\x82a\x08\xC8V[\x80T\x84\x84\x01R` \x90\x93\x01\x92`\x01\x01a\t\x0FV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x90Pa\x08\xD8\x82a\x08\xC8V[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x91`\x7F\x16\x91a\x08\xA6V[4a\x01\x7FW`\xA06`\x03\x19\x01\x12a\x01\x7FWa\t\x89`\x045a\x01\xCCV[a\t\x94`$5a\x01\xCCV[`\x845`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\t\xB3\x906\x90`\x04\x01a\x02hV[P`@Qc\xF2:na`\xE0\x1B\x81R` \x90\xF3[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW`\x045a\t\xE3\x81a\x01\xCCV[a\t\xEBa\r\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x80\x15a\n<W_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x83\x17\x82U`\x01`\x01`\xA0\x1B\x03\x16\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90\x80\xA3\0[c\x1EO\xBD\xF7`\xE0\x1B_R_`\x04R`$_\xFD[\x91` \x82\x01\x91`?a\na\x84\x83a\x0C,V[\x90P\x03a\x0B\x17W`\x01`\x01`@\x1B\x03a\n\x80a\n\x88\x94\x83\x96\x94\x96a\x0C,V[\x94\x90\x92a\x0B&V[\x16\x93_\x92[\x84\x84\x10\x15a\n\xDEWa\n\xC5`\x01\x91\x85`\x05\x1B\x85\x015\x90\x83\x89\x16\x15_\x14a\n\xCEW\x90a\n\xBE\x91_R` R`@_ \x90V[\x96`\x01\x1C\x90V[\x93\x01\x92\x94a\n\x8DV[a\n\xBE\x91_R` R`@_ \x90V[\x93P\x93\x90Pa\n\xEE\x91P\x15a\r\xE3V[a\n\xFEa\n\xFA\x82a\x0CaV[\x15\x90V[a\x0B\x05WPV[cD\xA1\x92\xFF`\xE0\x1B_R`\x04R`$_\xFD[c],^\x9B`\xE1\x1B_R`\x04_\xFD[5`\x01`\x01`@\x1B\x03\x81\x16\x81\x03a\x01\x7FW\x90V[\x90\x80` \x93\x92\x81\x84R\x84\x84\x017_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x91` a\x02\x83\x93\x81\x81R\x01\x91a\x0B:V[\x90`\x04\x11a\x01\x7FW\x90`\x04\x90V[\x90\x92\x91\x92\x83`\x04\x11a\x01\x7FW\x83\x11a\x01\x7FW`\x04\x01\x91`\x03\x19\x01\x90V[5`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x92\x91\x90`\x04\x82\x10a\x0B\xB1WPPV[`\x01`\x01`\xE0\x1B\x03\x19`\x04\x92\x90\x92\x03`\x03\x1B\x82\x90\x1B\x16\x16\x91PV[_\x19\x81\x14a\x0B\xDAW`\x01\x01\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[`@\x90`\x01`\x01`@\x1B\x03a\x02\x83\x95\x93\x16\x81R\x81` \x82\x01R\x01\x91a\x0B:V[a\x0C\x1E\x90a\x0C*\x93\x926\x91a\x022V[` \x81Q\x91\x01 a\nOV[V[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x01\x7FW\x01\x805\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FW` \x01\x91\x81`\x05\x1B6\x03\x83\x13a\x01\x7FWV[`\x03T`@Qc9s!\x99`\xE2\x1B\x81R0`\x04\x82\x01R`$\x81\x01\x92\x90\x92R` \x90\x82\x90`D\x90\x82\x90`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x90\x81\x15a\x0C\xDDW_\x91a\x0C\xA5WP\x90V[\x90P` \x81=` \x11a\x0C\xD5W[\x81a\x0C\xC0` \x93\x83a\x01\xF1V[\x81\x01\x03\x12a\x01\x7FWQ\x80\x15\x15\x81\x03a\x01\x7FW\x90V[=\x91Pa\x0C\xB3V[`@Q=_\x82>=\x90\xFD[\x90\x81\x01\x90`@\x81\x83\x03\x12a\x01\x7FW\x805a\r\x01\x81a\x01\xCCV[` \x82\x015\x91`\x01`\x01`@\x1B\x03\x83\x11a\x01\x7FW_\x93\x84\x93a\r#\x92\x01a\x02hV[\x80Q\x91` \x90\x91\x01\x90`\x01`\x01`\xA0\x1B\x03\x16Z\xF4a\r?a\x0E.V[\x90\x15a\rHWPV[a\x0E\x94V[\x90\x81\x01``\x82\x82\x03\x12a\x01\x7FW\x815a\re\x81a\x01\xCCV[` \x83\x015\x92`@\x81\x015\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FWa\r\x9E\x93\x85\x92a\r\x8F\x92\x01a\x02hV[\x91`\x01`\x01`\xA0\x1B\x03\x16a\x0E]V[\x91\x90\x15a\r\xA9WPPV[b\xFA\xE2\xD5`\xE2\x1B_R`\x04R`$R`D_\xFD[_T`\x01`\x01`\xA0\x1B\x03\x163\x03a\r\xD0WV[c\x11\x8C\xDA\xA7`\xE0\x1B_R3`\x04R`$_\xFD[\x15a\r\xEAWV[`d`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R` `$\x82\x01R\x7FLibMerkle32: index out of bounds`D\x82\x01R\xFD[=\x15a\x0EXW=\x90a\x0E?\x82a\x02\x17V[\x91a\x0EM`@Q\x93\x84a\x01\xF1V[\x82R=_` \x84\x01>V[``\x90V[\x90\x92\x91\x92G\x93\x84\x82\x11a\x0E\x8CW_\x92\x83\x92` \x83Q\x93\x01\x91Z\xF1a\x0E\x7Fa\x0E.V[\x90\x15a\rHWP`\x01\x91\x90V[PPP_\x91\x90V[\x80Q\x90\x81a\x0E\xA0W_\x80\xFD[` \x01\xFD\xFE\xA2dipfsX\"\x12 y%\x81\xCD\xB4\xC6\x19\xBA\xE2y\xF0\xC9.\x04z\xADa\xEBL\xF6\xDCo\xA5\x82w\xBA\xEE\xF4'\x18\xD5}dsolcC\0\x08\x1E\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806301ffc9a71461012957806308eb89ab14610124578063150b7a021461011f57806333137b761461011a57806361b12c6614610115578063715018a61461011057806371891db01461010b5780638da5cb5b14610106578063a94dfc5a14610101578063b3a1acd8146100fc578063bc197c81146100f7578063bf8abff8146100f2578063e64fab4d146100ed578063e88d39c0146100e8578063f02478de146100e3578063f23a6e61146100de5763f2fde38b0361000e576109c6565b61096d565b61087e565b61083d565b610820565b6107af565b610711565b610670565b610648565b610621565b6105e1565b61058a565b610550565b61034b565b610286565b610191565b3461017f57602036600319011261017f5760043563ffffffff60e01b811680910361017f57602090630271189760e51b811490811561016e575b506040519015158152f35b6301ffc9a760e01b1490505f610163565b5f80fd5b9081604091031261017f5790565b3461017f57604036600319011261017f576024356001600160401b03811161017f576101c4610018913690600401610183565b600435610a4f565b6001600160a01b0381160361017f57565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761021257604052565b6101dd565b6001600160401b03811161021257601f01601f191660200190565b92919261023e82610217565b9161024c60405193846101f1565b82948184528183011161017f578281602093845f960137010152565b9080601f8301121561017f5781602061028393359101610232565b90565b3461017f57608036600319011261017f576102a26004356101cc565b6102ad6024356101cc565b6064356001600160401b03811161017f576102cc903690600401610268565b50604051630a85bd0160e11b8152602090f35b604060031982011261017f57600435916001600160401b03831161017f578160238401121561017f578260040135926001600160401b03841161017f57826024858301011161017f576024019291602435906001600160401b03821161017f5761028391600401610183565b3461017f57610359366102df565b6002600193929354146105415761037f90600260015561037a818585610c0e565b610b26565b600483106105245761039a6103948484610b6b565b90610b96565b6103a5848085610b79565b916001600160e01b03191663237a816f60e01b810361049557506103e96001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b610471579361041c610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610d4d565b6104466001600160401b0384168060081c5f526002602052600160ff60405f2092161b8154179055565b610459610454600554610bcc565b600555565b60405193849384610bee565b0390a161001860018055565b5050604051637b97a6bb60e01b8152928392610491925060048401610b5a565b0390fd5b6310321e8b60e01b03610504576104cc6001600160401b03841660ff6001918060081c5f526002602052161b60405f205416151590565b61047157936104ff610465927fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367696610ce8565b61041c565b5050604051636942600f60e11b8152928392610491925060048401610b5a565b50610491604051928392636942600f60e11b845260048401610b5a565b633ee5aeb560e01b5f5260045ffd5b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461017f575f36600319011261017f576105a2610dbd565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017f57602036600319011261017f57602061061760043560ff6001918060081c5f526002602052161b60405f205416151590565b6040519015158152f35b3461017f575f36600319011261017f575f546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f576003546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b9080601f8301121561017f578135916001600160401b038311610212578260051b90604051936106dd60208401866101f1565b845260208085019282010192831161017f57602001905b8282106107015750505090565b81358152602091820191016106f4565b3461017f5760a036600319011261017f5761072d6004356101cc565b6107386024356101cc565b6044356001600160401b03811161017f576107579036906004016106aa565b506064356001600160401b03811161017f576107779036906004016106aa565b506084356001600160401b03811161017f57610797903690600401610268565b5060405163bc197c8160e01b815280602081015b0390f35b3461017f57602036600319011261017f577f6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece6004356107ed816101cc565b6107f5610dbd565b600380546001600160a01b0319166001600160a01b03929092169182179055604051908152602090a1005b3461017f575f36600319011261017f576020600554604051908152f35b3461017f5761001861084e366102df565b91610c0e565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017f575f36600319011261017f576040515f6004548060011c9060018116908115610963575b60208310821461094f57828552602085019190811561093657506001146108e4575b6107ab846108d8818603826101f1565b60405191829182610854565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610922575050016108d8826108c8565b80548484015260209093019260010161090f565b60ff191682525090151560051b0190506108d8826108c8565b634e487b7160e01b5f52602260045260245ffd5b91607f16916108a6565b3461017f5760a036600319011261017f576109896004356101cc565b6109946024356101cc565b6084356001600160401b03811161017f576109b3903690600401610268565b5060405163f23a6e6160e01b8152602090f35b3461017f57602036600319011261017f576004356109e3816101cc565b6109eb610dbd565b6001600160a01b03168015610a3c575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b916020820191603f610a618483610c2c565b905003610b17576001600160401b03610a80610a889483969496610c2c565b949092610b26565b16935f925b84841015610ade57610ac56001918560051b85013590838916155f14610ace5790610abe915f5260205260405f2090565b9660011c90565b93019294610a8d565b610abe915f5260205260405f2090565b9350939050610aee915015610de3565b610afe610afa82610c61565b1590565b610b055750565b6344a192ff60e01b5f5260045260245ffd5b635d2c5e9b60e11b5f5260045ffd5b356001600160401b038116810361017f5790565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610283938181520191610b3a565b9060041161017f5790600490565b909291928360041161017f57831161017f57600401916003190190565b356001600160e01b0319811692919060048210610bb1575050565b6001600160e01b031960049290920360031b82901b16169150565b5f198114610bda5760010190565b634e487b7160e01b5f52601160045260245ffd5b6040906001600160401b0361028395931681528160208201520191610b3a565b610c1e90610c2a93923691610232565b60208151910120610a4f565b565b903590601e198136030182121561017f57018035906001600160401b03821161017f57602001918160051b3603831361017f57565b600354604051633973219960e21b81523060048201526024810192909252602090829060449082906001600160a01b03165afa908115610cdd575f91610ca5575090565b90506020813d602011610cd5575b81610cc0602093836101f1565b8101031261017f5751801515810361017f5790565b3d9150610cb3565b6040513d5f823e3d90fd5b9081019060408183031261017f578035610d01816101cc565b6020820135916001600160401b03831161017f575f938493610d239201610268565b8051916020909101906001600160a01b03165af4610d3f610e2e565b9015610d485750565b610e94565b90810160608282031261017f578135610d65816101cc565b6020830135926040810135906001600160401b03821161017f57610d9e938592610d8f9201610268565b916001600160a01b0316610e5d565b919015610da9575050565b62fae2d560e21b5f5260045260245260445ffd5b5f546001600160a01b03163303610dd057565b63118cdaa760e01b5f523360045260245ffd5b15610dea57565b606460405162461bcd60e51b815260206004820152602060248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e64736044820152fd5b3d15610e58573d90610e3f82610217565b91610e4d60405193846101f1565b82523d5f602084013e565b606090565b909291924793848211610e8c575f928392602083519301915af1610e7f610e2e565b9015610d48575060019190565b5050505f9190565b80519081610ea0575f80fd5b602001fdfea2646970667358221220792581cdb4c619bae279f0c92e047aad61eb4cf6dc6fa58277baeef42718d57d64736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R`\x046\x10\x15a\0\x1AW[6\x15a\0\x18W_\x80\xFD[\0[_5`\xE0\x1C\x80c\x01\xFF\xC9\xA7\x14a\x01)W\x80c\x08\xEB\x89\xAB\x14a\x01$W\x80c\x15\x0Bz\x02\x14a\x01\x1FW\x80c3\x13{v\x14a\x01\x1AW\x80ca\xB1,f\x14a\x01\x15W\x80cqP\x18\xA6\x14a\x01\x10W\x80cq\x89\x1D\xB0\x14a\x01\x0BW\x80c\x8D\xA5\xCB[\x14a\x01\x06W\x80c\xA9M\xFCZ\x14a\x01\x01W\x80c\xB3\xA1\xAC\xD8\x14a\0\xFCW\x80c\xBC\x19|\x81\x14a\0\xF7W\x80c\xBF\x8A\xBF\xF8\x14a\0\xF2W\x80c\xE6O\xABM\x14a\0\xEDW\x80c\xE8\x8D9\xC0\x14a\0\xE8W\x80c\xF0$x\xDE\x14a\0\xE3W\x80c\xF2:na\x14a\0\xDEWc\xF2\xFD\xE3\x8B\x03a\0\x0EWa\t\xC6V[a\tmV[a\x08~V[a\x08=V[a\x08 V[a\x07\xAFV[a\x07\x11V[a\x06pV[a\x06HV[a\x06!V[a\x05\xE1V[a\x05\x8AV[a\x05PV[a\x03KV[a\x02\x86V[a\x01\x91V[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW`\x045c\xFF\xFF\xFF\xFF`\xE0\x1B\x81\x16\x80\x91\x03a\x01\x7FW` \x90c\x02q\x18\x97`\xE5\x1B\x81\x14\x90\x81\x15a\x01nW[P`@Q\x90\x15\x15\x81R\xF3[c\x01\xFF\xC9\xA7`\xE0\x1B\x14\x90P_a\x01cV[_\x80\xFD[\x90\x81`@\x91\x03\x12a\x01\x7FW\x90V[4a\x01\x7FW`@6`\x03\x19\x01\x12a\x01\x7FW`$5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x01\xC4a\0\x18\x916\x90`\x04\x01a\x01\x83V[`\x045a\nOV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x03a\x01\x7FWV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10`\x01`\x01`@\x1B\x03\x82\x11\x17a\x02\x12W`@RV[a\x01\xDDV[`\x01`\x01`@\x1B\x03\x81\x11a\x02\x12W`\x1F\x01`\x1F\x19\x16` \x01\x90V[\x92\x91\x92a\x02>\x82a\x02\x17V[\x91a\x02L`@Q\x93\x84a\x01\xF1V[\x82\x94\x81\x84R\x81\x83\x01\x11a\x01\x7FW\x82\x81` \x93\x84_\x96\x017\x01\x01RV[\x90\x80`\x1F\x83\x01\x12\x15a\x01\x7FW\x81` a\x02\x83\x935\x91\x01a\x022V[\x90V[4a\x01\x7FW`\x806`\x03\x19\x01\x12a\x01\x7FWa\x02\xA2`\x045a\x01\xCCV[a\x02\xAD`$5a\x01\xCCV[`d5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x02\xCC\x906\x90`\x04\x01a\x02hV[P`@Qc\n\x85\xBD\x01`\xE1\x1B\x81R` \x90\xF3[`@`\x03\x19\x82\x01\x12a\x01\x7FW`\x045\x91`\x01`\x01`@\x1B\x03\x83\x11a\x01\x7FW\x81`#\x84\x01\x12\x15a\x01\x7FW\x82`\x04\x015\x92`\x01`\x01`@\x1B\x03\x84\x11a\x01\x7FW\x82`$\x85\x83\x01\x01\x11a\x01\x7FW`$\x01\x92\x91`$5\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FWa\x02\x83\x91`\x04\x01a\x01\x83V[4a\x01\x7FWa\x03Y6a\x02\xDFV[`\x02`\x01\x93\x92\x93T\x14a\x05AWa\x03\x7F\x90`\x02`\x01Ua\x03z\x81\x85\x85a\x0C\x0EV[a\x0B&V[`\x04\x83\x10a\x05$Wa\x03\x9Aa\x03\x94\x84\x84a\x0BkV[\x90a\x0B\x96V[a\x03\xA5\x84\x80\x85a\x0ByV[\x91`\x01`\x01`\xE0\x1B\x03\x19\x16c#z\x81o`\xE0\x1B\x81\x03a\x04\x95WPa\x03\xE9`\x01`\x01`@\x1B\x03\x84\x16`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[a\x04qW\x93a\x04\x1Ca\x04e\x92\x7F\xCA\xD1\xF3a\xC6\xE8Fd\xE8\x92#\x02\x91\xC8\xE8\xEB\x95Uh>\nj\\\xE8\xEA{ J\xC0\xAC6v\x96a\rMV[a\x04F`\x01`\x01`@\x1B\x03\x84\x16\x80`\x08\x1C_R`\x02` R`\x01`\xFF`@_ \x92\x16\x1B\x81T\x17\x90UV[a\x04Ya\x04T`\x05Ta\x0B\xCCV[`\x05UV[`@Q\x93\x84\x93\x84a\x0B\xEEV[\x03\x90\xA1a\0\x18`\x01\x80UV[PP`@Qc{\x97\xA6\xBB`\xE0\x1B\x81R\x92\x83\x92a\x04\x91\x92P`\x04\x84\x01a\x0BZV[\x03\x90\xFD[c\x102\x1E\x8B`\xE0\x1B\x03a\x05\x04Wa\x04\xCC`\x01`\x01`@\x1B\x03\x84\x16`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[a\x04qW\x93a\x04\xFFa\x04e\x92\x7F\xCA\xD1\xF3a\xC6\xE8Fd\xE8\x92#\x02\x91\xC8\xE8\xEB\x95Uh>\nj\\\xE8\xEA{ J\xC0\xAC6v\x96a\x0C\xE8V[a\x04\x1CV[PP`@QciB`\x0F`\xE1\x1B\x81R\x92\x83\x92a\x04\x91\x92P`\x04\x84\x01a\x0BZV[Pa\x04\x91`@Q\x92\x83\x92ciB`\x0F`\xE1\x1B\x84R`\x04\x84\x01a\x0BZV[c>\xE5\xAE\xB5`\xE0\x1B_R`\x04_\xFD[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FWa\x05\xA2a\r\xBDV[_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x82U`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x82\x80\xA3\0[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW` a\x06\x17`\x045`\xFF`\x01\x91\x80`\x08\x1C_R`\x02` R\x16\x1B`@_ T\x16\x15\x15\x90V[`@Q\x90\x15\x15\x81R\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW_T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW`\x03T`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R\xF3[\x90\x80`\x1F\x83\x01\x12\x15a\x01\x7FW\x815\x91`\x01`\x01`@\x1B\x03\x83\x11a\x02\x12W\x82`\x05\x1B\x90`@Q\x93a\x06\xDD` \x84\x01\x86a\x01\xF1V[\x84R` \x80\x85\x01\x92\x82\x01\x01\x92\x83\x11a\x01\x7FW` \x01\x90[\x82\x82\x10a\x07\x01WPPP\x90V[\x815\x81R` \x91\x82\x01\x91\x01a\x06\xF4V[4a\x01\x7FW`\xA06`\x03\x19\x01\x12a\x01\x7FWa\x07-`\x045a\x01\xCCV[a\x078`$5a\x01\xCCV[`D5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07W\x906\x90`\x04\x01a\x06\xAAV[P`d5`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07w\x906\x90`\x04\x01a\x06\xAAV[P`\x845`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\x07\x97\x906\x90`\x04\x01a\x02hV[P`@Qc\xBC\x19|\x81`\xE0\x1B\x81R\x80` \x81\x01[\x03\x90\xF3[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW\x7Fj\xD3\x18\x8B\xA8\xF40\xFB\xA0el\xB0\xA7\xE89\xAB \xD5Xk\xA1\x1A\x14w\xD1\x8Fp\x92\xF8\xBE\xCE`\x045a\x07\xED\x81a\x01\xCCV[a\x07\xF5a\r\xBDV[`\x03\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x82\x17\x90U`@Q\x90\x81R` \x90\xA1\0[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW` `\x05T`@Q\x90\x81R\xF3[4a\x01\x7FWa\0\x18a\x08N6a\x02\xDFV[\x91a\x0C\x0EV[` `@\x92\x81\x83R\x80Q\x91\x82\x91\x82\x82\x86\x01R\x01\x84\x84\x01^_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[4a\x01\x7FW_6`\x03\x19\x01\x12a\x01\x7FW`@Q_`\x04T\x80`\x01\x1C\x90`\x01\x81\x16\x90\x81\x15a\tcW[` \x83\x10\x82\x14a\tOW\x82\x85R` \x85\x01\x91\x90\x81\x15a\t6WP`\x01\x14a\x08\xE4W[a\x07\xAB\x84a\x08\xD8\x81\x86\x03\x82a\x01\xF1V[`@Q\x91\x82\x91\x82a\x08TV[`\x04_\x90\x81R\x92P\x90\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B[\x81\x84\x10a\t\"WPP\x01a\x08\xD8\x82a\x08\xC8V[\x80T\x84\x84\x01R` \x90\x93\x01\x92`\x01\x01a\t\x0FV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x90Pa\x08\xD8\x82a\x08\xC8V[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x91`\x7F\x16\x91a\x08\xA6V[4a\x01\x7FW`\xA06`\x03\x19\x01\x12a\x01\x7FWa\t\x89`\x045a\x01\xCCV[a\t\x94`$5a\x01\xCCV[`\x845`\x01`\x01`@\x1B\x03\x81\x11a\x01\x7FWa\t\xB3\x906\x90`\x04\x01a\x02hV[P`@Qc\xF2:na`\xE0\x1B\x81R` \x90\xF3[4a\x01\x7FW` 6`\x03\x19\x01\x12a\x01\x7FW`\x045a\t\xE3\x81a\x01\xCCV[a\t\xEBa\r\xBDV[`\x01`\x01`\xA0\x1B\x03\x16\x80\x15a\n<W_\x80T`\x01`\x01`\xA0\x1B\x03\x19\x81\x16\x83\x17\x82U`\x01`\x01`\xA0\x1B\x03\x16\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90\x80\xA3\0[c\x1EO\xBD\xF7`\xE0\x1B_R_`\x04R`$_\xFD[\x91` \x82\x01\x91`?a\na\x84\x83a\x0C,V[\x90P\x03a\x0B\x17W`\x01`\x01`@\x1B\x03a\n\x80a\n\x88\x94\x83\x96\x94\x96a\x0C,V[\x94\x90\x92a\x0B&V[\x16\x93_\x92[\x84\x84\x10\x15a\n\xDEWa\n\xC5`\x01\x91\x85`\x05\x1B\x85\x015\x90\x83\x89\x16\x15_\x14a\n\xCEW\x90a\n\xBE\x91_R` R`@_ \x90V[\x96`\x01\x1C\x90V[\x93\x01\x92\x94a\n\x8DV[a\n\xBE\x91_R` R`@_ \x90V[\x93P\x93\x90Pa\n\xEE\x91P\x15a\r\xE3V[a\n\xFEa\n\xFA\x82a\x0CaV[\x15\x90V[a\x0B\x05WPV[cD\xA1\x92\xFF`\xE0\x1B_R`\x04R`$_\xFD[c],^\x9B`\xE1\x1B_R`\x04_\xFD[5`\x01`\x01`@\x1B\x03\x81\x16\x81\x03a\x01\x7FW\x90V[\x90\x80` \x93\x92\x81\x84R\x84\x84\x017_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x91` a\x02\x83\x93\x81\x81R\x01\x91a\x0B:V[\x90`\x04\x11a\x01\x7FW\x90`\x04\x90V[\x90\x92\x91\x92\x83`\x04\x11a\x01\x7FW\x83\x11a\x01\x7FW`\x04\x01\x91`\x03\x19\x01\x90V[5`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x92\x91\x90`\x04\x82\x10a\x0B\xB1WPPV[`\x01`\x01`\xE0\x1B\x03\x19`\x04\x92\x90\x92\x03`\x03\x1B\x82\x90\x1B\x16\x16\x91PV[_\x19\x81\x14a\x0B\xDAW`\x01\x01\x90V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[`@\x90`\x01`\x01`@\x1B\x03a\x02\x83\x95\x93\x16\x81R\x81` \x82\x01R\x01\x91a\x0B:V[a\x0C\x1E\x90a\x0C*\x93\x926\x91a\x022V[` \x81Q\x91\x01 a\nOV[V[\x905\x90`\x1E\x19\x816\x03\x01\x82\x12\x15a\x01\x7FW\x01\x805\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FW` \x01\x91\x81`\x05\x1B6\x03\x83\x13a\x01\x7FWV[`\x03T`@Qc9s!\x99`\xE2\x1B\x81R0`\x04\x82\x01R`$\x81\x01\x92\x90\x92R` \x90\x82\x90`D\x90\x82\x90`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x90\x81\x15a\x0C\xDDW_\x91a\x0C\xA5WP\x90V[\x90P` \x81=` \x11a\x0C\xD5W[\x81a\x0C\xC0` \x93\x83a\x01\xF1V[\x81\x01\x03\x12a\x01\x7FWQ\x80\x15\x15\x81\x03a\x01\x7FW\x90V[=\x91Pa\x0C\xB3V[`@Q=_\x82>=\x90\xFD[\x90\x81\x01\x90`@\x81\x83\x03\x12a\x01\x7FW\x805a\r\x01\x81a\x01\xCCV[` \x82\x015\x91`\x01`\x01`@\x1B\x03\x83\x11a\x01\x7FW_\x93\x84\x93a\r#\x92\x01a\x02hV[\x80Q\x91` \x90\x91\x01\x90`\x01`\x01`\xA0\x1B\x03\x16Z\xF4a\r?a\x0E.V[\x90\x15a\rHWPV[a\x0E\x94V[\x90\x81\x01``\x82\x82\x03\x12a\x01\x7FW\x815a\re\x81a\x01\xCCV[` \x83\x015\x92`@\x81\x015\x90`\x01`\x01`@\x1B\x03\x82\x11a\x01\x7FWa\r\x9E\x93\x85\x92a\r\x8F\x92\x01a\x02hV[\x91`\x01`\x01`\xA0\x1B\x03\x16a\x0E]V[\x91\x90\x15a\r\xA9WPPV[b\xFA\xE2\xD5`\xE2\x1B_R`\x04R`$R`D_\xFD[_T`\x01`\x01`\xA0\x1B\x03\x163\x03a\r\xD0WV[c\x11\x8C\xDA\xA7`\xE0\x1B_R3`\x04R`$_\xFD[\x15a\r\xEAWV[`d`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R` `$\x82\x01R\x7FLibMerkle32: index out of bounds`D\x82\x01R\xFD[=\x15a\x0EXW=\x90a\x0E?\x82a\x02\x17V[\x91a\x0EM`@Q\x93\x84a\x01\xF1V[\x82R=_` \x84\x01>V[``\x90V[\x90\x92\x91\x92G\x93\x84\x82\x11a\x0E\x8CW_\x92\x83\x92` \x83Q\x93\x01\x91Z\xF1a\x0E\x7Fa\x0E.V[\x90\x15a\rHWP`\x01\x91\x90V[PPP_\x91\x90V[\x80Q\x90\x81a\x0E\xA0W_\x80\xFD[` \x01\xFD\xFE\xA2dipfsX\"\x12 y%\x81\xCD\xB4\xC6\x19\xBA\xE2y\xF0\xC9.\x04z\xADa\xEBL\xF6\xDCo\xA5\x82w\xBA\xEE\xF4'\x18\xD5}dsolcC\0\x08\x1E\x003",
);
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct OutputValidityProof { uint64 outputIndex; bytes32[] outputHashesSiblings; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OutputValidityProof {
#[allow(missing_docs)]
pub outputIndex: u64,
#[allow(missing_docs)]
pub outputHashesSiblings: alloy::sol_types::private::Vec<
alloy::sol_types::private::FixedBytes<32>,
>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<64>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
u64,
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OutputValidityProof> for UnderlyingRustTuple<'_> {
fn from(value: OutputValidityProof) -> Self {
(value.outputIndex, value.outputHashesSiblings)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OutputValidityProof {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
outputIndex: tuple.0,
outputHashesSiblings: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for OutputValidityProof {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for OutputValidityProof {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<
64,
> as alloy_sol_types::SolType>::tokenize(&self.outputIndex),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(&self.outputHashesSiblings),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple = <UnderlyingRustTuple<
'_,
> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(
&self,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
let tuple = <UnderlyingRustTuple<
'_,
> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple = <UnderlyingRustTuple<
'_,
> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for OutputValidityProof {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<
'_,
> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for OutputValidityProof {
const NAME: &'static str = "OutputValidityProof";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"OutputValidityProof(uint64 outputIndex,bytes32[] outputHashesSiblings)",
)
}
#[inline]
fn eip712_components() -> alloy_sol_types::private::Vec<
alloy_sol_types::private::Cow<'static, str>,
> {
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Uint<
64,
> as alloy_sol_types::SolType>::eip712_data_word(&self.outputIndex)
.0,
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.outputHashesSiblings,
)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for OutputValidityProof {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Uint<
64,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.outputIndex,
)
+ <alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.outputHashesSiblings,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(
<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
);
<alloy::sol_types::sol_data::Uint<
64,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.outputIndex,
out,
);
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.outputHashesSiblings,
out,
);
}
#[inline]
fn encode_topic(
rust: &Self::RustType,
) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
rust,
&mut out,
);
alloy_sol_types::abi::token::WordToken(
alloy_sol_types::private::keccak256(out),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `InsufficientFunds(uint256,uint256)` and selector `0x03eb8b54`.
```solidity
error InsufficientFunds(uint256 value, uint256 balance);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct InsufficientFunds {
#[allow(missing_docs)]
pub value: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub balance: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InsufficientFunds> for UnderlyingRustTuple<'_> {
fn from(value: InsufficientFunds) -> Self {
(value.value, value.balance)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for InsufficientFunds {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
value: tuple.0,
balance: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for InsufficientFunds {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "InsufficientFunds(uint256,uint256)";
const SELECTOR: [u8; 4] = [3u8, 235u8, 139u8, 84u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.value),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.balance),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `InvalidOutputHashesSiblingsArrayLength()` and selector `0xba58bd36`.
```solidity
error InvalidOutputHashesSiblingsArrayLength();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct InvalidOutputHashesSiblingsArrayLength;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InvalidOutputHashesSiblingsArrayLength>
for UnderlyingRustTuple<'_> {
fn from(value: InvalidOutputHashesSiblingsArrayLength) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for InvalidOutputHashesSiblingsArrayLength {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for InvalidOutputHashesSiblingsArrayLength {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "InvalidOutputHashesSiblingsArrayLength()";
const SELECTOR: [u8; 4] = [186u8, 88u8, 189u8, 54u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `InvalidOutputsMerkleRoot(bytes32)` and selector `0x44a192ff`.
```solidity
error InvalidOutputsMerkleRoot(bytes32 outputsMerkleRoot);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct InvalidOutputsMerkleRoot {
#[allow(missing_docs)]
pub outputsMerkleRoot: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InvalidOutputsMerkleRoot>
for UnderlyingRustTuple<'_> {
fn from(value: InvalidOutputsMerkleRoot) -> Self {
(value.outputsMerkleRoot,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for InvalidOutputsMerkleRoot {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { outputsMerkleRoot: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for InvalidOutputsMerkleRoot {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "InvalidOutputsMerkleRoot(bytes32)";
const SELECTOR: [u8; 4] = [68u8, 161u8, 146u8, 255u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.outputsMerkleRoot),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OutputNotExecutable(bytes)` and selector `0xd284c01e`.
```solidity
error OutputNotExecutable(bytes output);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OutputNotExecutable {
#[allow(missing_docs)]
pub output: alloy::sol_types::private::Bytes,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OutputNotExecutable> for UnderlyingRustTuple<'_> {
fn from(value: OutputNotExecutable) -> Self {
(value.output,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OutputNotExecutable {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { output: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OutputNotExecutable {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OutputNotExecutable(bytes)";
const SELECTOR: [u8; 4] = [210u8, 132u8, 192u8, 30u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.output,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OutputNotReexecutable(bytes)` and selector `0x7b97a6bb`.
```solidity
error OutputNotReexecutable(bytes output);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OutputNotReexecutable {
#[allow(missing_docs)]
pub output: alloy::sol_types::private::Bytes,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OutputNotReexecutable> for UnderlyingRustTuple<'_> {
fn from(value: OutputNotReexecutable) -> Self {
(value.output,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OutputNotReexecutable {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { output: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OutputNotReexecutable {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OutputNotReexecutable(bytes)";
const SELECTOR: [u8; 4] = [123u8, 151u8, 166u8, 187u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.output,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OwnableInvalidOwner(address)` and selector `0x1e4fbdf7`.
```solidity
error OwnableInvalidOwner(address owner);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OwnableInvalidOwner {
#[allow(missing_docs)]
pub owner: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OwnableInvalidOwner> for UnderlyingRustTuple<'_> {
fn from(value: OwnableInvalidOwner) -> Self {
(value.owner,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OwnableInvalidOwner {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { owner: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OwnableInvalidOwner {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OwnableInvalidOwner(address)";
const SELECTOR: [u8; 4] = [30u8, 79u8, 189u8, 247u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.owner,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OwnableUnauthorizedAccount(address)` and selector `0x118cdaa7`.
```solidity
error OwnableUnauthorizedAccount(address account);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OwnableUnauthorizedAccount {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OwnableUnauthorizedAccount>
for UnderlyingRustTuple<'_> {
fn from(value: OwnableUnauthorizedAccount) -> Self {
(value.account,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for OwnableUnauthorizedAccount {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { account: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OwnableUnauthorizedAccount {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OwnableUnauthorizedAccount(address)";
const SELECTOR: [u8; 4] = [17u8, 140u8, 218u8, 167u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.account,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ReentrancyGuardReentrantCall()` and selector `0x3ee5aeb5`.
```solidity
error ReentrancyGuardReentrantCall();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ReentrancyGuardReentrantCall;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ReentrancyGuardReentrantCall>
for UnderlyingRustTuple<'_> {
fn from(value: ReentrancyGuardReentrantCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for ReentrancyGuardReentrantCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ReentrancyGuardReentrantCall {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ReentrancyGuardReentrantCall()";
const SELECTOR: [u8; 4] = [62u8, 229u8, 174u8, 181u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OutputExecuted(uint64,bytes)` and selector `0xcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac3676`.
```solidity
event OutputExecuted(uint64 outputIndex, bytes output);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OutputExecuted {
#[allow(missing_docs)]
pub outputIndex: u64,
#[allow(missing_docs)]
pub output: alloy::sol_types::private::Bytes,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OutputExecuted {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Uint<64>,
alloy::sol_types::sol_data::Bytes,
);
type DataToken<'a> = <Self::DataTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "OutputExecuted(uint64,bytes)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
202u8, 209u8, 243u8, 97u8, 198u8, 232u8, 70u8, 100u8, 232u8, 146u8, 35u8,
2u8, 145u8, 200u8, 232u8, 235u8, 149u8, 85u8, 104u8, 62u8, 10u8, 106u8,
92u8, 232u8, 234u8, 123u8, 32u8, 74u8, 192u8, 172u8, 54u8, 118u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
outputIndex: data.0,
output: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(
alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
),
);
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<
64,
> as alloy_sol_types::SolType>::tokenize(&self.outputIndex),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.output,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(
Self::SIGNATURE_HASH,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OutputExecuted {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OutputExecuted> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OutputExecuted) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OutputsMerkleRootValidatorChanged(address)` and selector `0x6ad3188ba8f430fba0656cb0a7e839ab2020d5586ba11a1477d18f7092f8bece`.
```solidity
event OutputsMerkleRootValidatorChanged(address newOutputsMerkleRootValidator);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OutputsMerkleRootValidatorChanged {
#[allow(missing_docs)]
pub newOutputsMerkleRootValidator: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OutputsMerkleRootValidatorChanged {
type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
type DataToken<'a> = <Self::DataTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "OutputsMerkleRootValidatorChanged(address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
106u8, 211u8, 24u8, 139u8, 168u8, 244u8, 48u8, 251u8, 160u8, 101u8,
108u8, 176u8, 167u8, 232u8, 57u8, 171u8, 32u8, 32u8, 213u8, 88u8, 107u8,
161u8, 26u8, 20u8, 119u8, 209u8, 143u8, 112u8, 146u8, 248u8, 190u8, 206u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
newOutputsMerkleRootValidator: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(
alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
),
);
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newOutputsMerkleRootValidator,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(
Self::SIGNATURE_HASH,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData
for OutputsMerkleRootValidatorChanged {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OutputsMerkleRootValidatorChanged>
for alloy_sol_types::private::LogData {
#[inline]
fn from(
this: &OutputsMerkleRootValidatorChanged,
) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
```solidity
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OwnershipTransferred {
#[allow(missing_docs)]
pub previousOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newOwner: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OwnershipTransferred {
type DataTuple<'a> = ();
type DataToken<'a> = <Self::DataTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
previousOwner: topics.1,
newOwner: topics.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(
alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
),
);
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
()
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.previousOwner.clone(),
self.newOwner.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(
Self::SIGNATURE_HASH,
);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.previousOwner,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.newOwner,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
/**Constructor`.
```solidity
constructor(address outputsMerkleRootValidator, address initialOwner, bytes32 templateHash, bytes dataAvailability);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct constructorCall {
#[allow(missing_docs)]
pub outputsMerkleRootValidator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub initialOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub templateHash: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub dataAvailability: alloy::sol_types::private::Bytes,
}
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
fn from(value: constructorCall) -> Self {
(
value.outputsMerkleRootValidator,
value.initialOwner,
value.templateHash,
value.dataAvailability,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
outputsMerkleRootValidator: tuple.0,
initialOwner: tuple.1,
templateHash: tuple.2,
dataAvailability: tuple.3,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolConstructor for constructorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.outputsMerkleRootValidator,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.initialOwner,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.templateHash),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.dataAvailability,
),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `executeOutput(bytes,(uint64,bytes32[]))` and selector `0x33137b76`.
```solidity
function executeOutput(bytes memory output, OutputValidityProof memory proof) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct executeOutputCall {
#[allow(missing_docs)]
pub output: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`executeOutput(bytes,(uint64,bytes32[]))`](executeOutputCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct executeOutputReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Bytes,
OutputValidityProof,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Bytes,
<OutputValidityProof as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<executeOutputCall> for UnderlyingRustTuple<'_> {
fn from(value: executeOutputCall) -> Self {
(value.output, value.proof)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for executeOutputCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
output: tuple.0,
proof: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<executeOutputReturn> for UnderlyingRustTuple<'_> {
fn from(value: executeOutputReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for executeOutputReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl executeOutputReturn {
fn _tokenize(
&self,
) -> <executeOutputCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for executeOutputCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Bytes,
OutputValidityProof,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = executeOutputReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "executeOutput(bytes,(uint64,bytes32[]))";
const SELECTOR: [u8; 4] = [51u8, 19u8, 123u8, 118u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.output,
),
<OutputValidityProof as alloy_sol_types::SolType>::tokenize(
&self.proof,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
executeOutputReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getDataAvailability()` and selector `0xf02478de`.
```solidity
function getDataAvailability() external view returns (bytes memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDataAvailabilityCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getDataAvailability()`](getDataAvailabilityCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDataAvailabilityReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Bytes,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDataAvailabilityCall>
for UnderlyingRustTuple<'_> {
fn from(value: getDataAvailabilityCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getDataAvailabilityCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDataAvailabilityReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getDataAvailabilityReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getDataAvailabilityReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getDataAvailabilityCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Bytes;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getDataAvailability()";
const SELECTOR: [u8; 4] = [240u8, 36u8, 120u8, 222u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getDataAvailabilityReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getDataAvailabilityReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getDeploymentBlockNumber()` and selector `0xb3a1acd8`.
```solidity
function getDeploymentBlockNumber() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDeploymentBlockNumberCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getDeploymentBlockNumber()`](getDeploymentBlockNumberCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDeploymentBlockNumberReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDeploymentBlockNumberCall>
for UnderlyingRustTuple<'_> {
fn from(value: getDeploymentBlockNumberCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getDeploymentBlockNumberCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDeploymentBlockNumberReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getDeploymentBlockNumberReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getDeploymentBlockNumberReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getDeploymentBlockNumberCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getDeploymentBlockNumber()";
const SELECTOR: [u8; 4] = [179u8, 161u8, 172u8, 216u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getDeploymentBlockNumberReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getDeploymentBlockNumberReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getNumberOfExecutedOutputs()` and selector `0xe64fab4d`.
```solidity
function getNumberOfExecutedOutputs() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getNumberOfExecutedOutputsCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getNumberOfExecutedOutputs()`](getNumberOfExecutedOutputsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getNumberOfExecutedOutputsReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getNumberOfExecutedOutputsCall>
for UnderlyingRustTuple<'_> {
fn from(value: getNumberOfExecutedOutputsCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getNumberOfExecutedOutputsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getNumberOfExecutedOutputsReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getNumberOfExecutedOutputsReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getNumberOfExecutedOutputsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getNumberOfExecutedOutputsCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getNumberOfExecutedOutputs()";
const SELECTOR: [u8; 4] = [230u8, 79u8, 171u8, 77u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getNumberOfExecutedOutputsReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getNumberOfExecutedOutputsReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOutputsMerkleRootValidator()` and selector `0xa94dfc5a`.
```solidity
function getOutputsMerkleRootValidator() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOutputsMerkleRootValidatorCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOutputsMerkleRootValidator()`](getOutputsMerkleRootValidatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOutputsMerkleRootValidatorReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOutputsMerkleRootValidatorCall>
for UnderlyingRustTuple<'_> {
fn from(value: getOutputsMerkleRootValidatorCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getOutputsMerkleRootValidatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOutputsMerkleRootValidatorReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getOutputsMerkleRootValidatorReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getOutputsMerkleRootValidatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOutputsMerkleRootValidatorCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOutputsMerkleRootValidator()";
const SELECTOR: [u8; 4] = [169u8, 77u8, 252u8, 90u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getOutputsMerkleRootValidatorReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getOutputsMerkleRootValidatorReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getTemplateHash()` and selector `0x61b12c66`.
```solidity
function getTemplateHash() external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getTemplateHashCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getTemplateHash()`](getTemplateHashCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getTemplateHashReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getTemplateHashCall> for UnderlyingRustTuple<'_> {
fn from(value: getTemplateHashCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getTemplateHashCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getTemplateHashReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getTemplateHashReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getTemplateHashReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getTemplateHashCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getTemplateHash()";
const SELECTOR: [u8; 4] = [97u8, 177u8, 44u8, 102u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getTemplateHashReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getTemplateHashReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `migrateToOutputsMerkleRootValidator(address)` and selector `0xbf8abff8`.
```solidity
function migrateToOutputsMerkleRootValidator(address newOutputsMerkleRootValidator) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct migrateToOutputsMerkleRootValidatorCall {
#[allow(missing_docs)]
pub newOutputsMerkleRootValidator: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`migrateToOutputsMerkleRootValidator(address)`](migrateToOutputsMerkleRootValidatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct migrateToOutputsMerkleRootValidatorReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<migrateToOutputsMerkleRootValidatorCall>
for UnderlyingRustTuple<'_> {
fn from(value: migrateToOutputsMerkleRootValidatorCall) -> Self {
(value.newOutputsMerkleRootValidator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for migrateToOutputsMerkleRootValidatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newOutputsMerkleRootValidator: tuple.0,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<migrateToOutputsMerkleRootValidatorReturn>
for UnderlyingRustTuple<'_> {
fn from(value: migrateToOutputsMerkleRootValidatorReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for migrateToOutputsMerkleRootValidatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl migrateToOutputsMerkleRootValidatorReturn {
fn _tokenize(
&self,
) -> <migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::ReturnToken<
'_,
> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for migrateToOutputsMerkleRootValidatorCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = migrateToOutputsMerkleRootValidatorReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "migrateToOutputsMerkleRootValidator(address)";
const SELECTOR: [u8; 4] = [191u8, 138u8, 191u8, 248u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newOutputsMerkleRootValidator,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
migrateToOutputsMerkleRootValidatorReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)` and selector `0xbc197c81`.
```solidity
function onERC1155BatchReceived(address, address, uint256[] memory, uint256[] memory, bytes memory) external returns (bytes4);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC1155BatchReceivedCall {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _1: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _2: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
#[allow(missing_docs)]
pub _3: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
#[allow(missing_docs)]
pub _4: alloy::sol_types::private::Bytes,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)`](onERC1155BatchReceivedCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC1155BatchReceivedReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<4>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC1155BatchReceivedCall>
for UnderlyingRustTuple<'_> {
fn from(value: onERC1155BatchReceivedCall) -> Self {
(value._0, value._1, value._2, value._3, value._4)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC1155BatchReceivedCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
_2: tuple.2,
_3: tuple.3,
_4: tuple.4,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC1155BatchReceivedReturn>
for UnderlyingRustTuple<'_> {
fn from(value: onERC1155BatchReceivedReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC1155BatchReceivedReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for onERC1155BatchReceivedCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<4>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)";
const SELECTOR: [u8; 4] = [188u8, 25u8, 124u8, 129u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._0,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._1,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self._2),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self._3),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self._4,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
4,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: onERC1155BatchReceivedReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: onERC1155BatchReceivedReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `onERC1155Received(address,address,uint256,uint256,bytes)` and selector `0xf23a6e61`.
```solidity
function onERC1155Received(address, address, uint256, uint256, bytes memory) external returns (bytes4);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC1155ReceivedCall {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _1: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _2: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub _3: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub _4: alloy::sol_types::private::Bytes,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`onERC1155Received(address,address,uint256,uint256,bytes)`](onERC1155ReceivedCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC1155ReceivedReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<4>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC1155ReceivedCall>
for UnderlyingRustTuple<'_> {
fn from(value: onERC1155ReceivedCall) -> Self {
(value._0, value._1, value._2, value._3, value._4)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC1155ReceivedCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
_2: tuple.2,
_3: tuple.3,
_4: tuple.4,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC1155ReceivedReturn>
for UnderlyingRustTuple<'_> {
fn from(value: onERC1155ReceivedReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC1155ReceivedReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for onERC1155ReceivedCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<4>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "onERC1155Received(address,address,uint256,uint256,bytes)";
const SELECTOR: [u8; 4] = [242u8, 58u8, 110u8, 97u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._0,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._1,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self._2),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self._3),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self._4,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
4,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: onERC1155ReceivedReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: onERC1155ReceivedReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`.
```solidity
function onERC721Received(address, address, uint256, bytes memory) external returns (bytes4);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC721ReceivedCall {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _1: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _2: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub _3: alloy::sol_types::private::Bytes,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`onERC721Received(address,address,uint256,bytes)`](onERC721ReceivedCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct onERC721ReceivedReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<4>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC721ReceivedCall>
for UnderlyingRustTuple<'_> {
fn from(value: onERC721ReceivedCall) -> Self {
(value._0, value._1, value._2, value._3)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC721ReceivedCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
_2: tuple.2,
_3: tuple.3,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<onERC721ReceivedReturn>
for UnderlyingRustTuple<'_> {
fn from(value: onERC721ReceivedReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for onERC721ReceivedReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for onERC721ReceivedCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<4>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "onERC721Received(address,address,uint256,bytes)";
const SELECTOR: [u8; 4] = [21u8, 11u8, 122u8, 2u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._0,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._1,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self._2),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self._3,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
4,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: onERC721ReceivedReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: onERC721ReceivedReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `owner()` and selector `0x8da5cb5b`.
```solidity
function owner() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ownerCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`owner()`](ownerCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ownerReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
fn from(value: ownerCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
fn from(value: ownerReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ownerCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "owner()";
const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: ownerReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: ownerReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `renounceOwnership()` and selector `0x715018a6`.
```solidity
function renounceOwnership() external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct renounceOwnershipCall;
///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct renounceOwnershipReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipCall>
for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for renounceOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipReturn>
for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for renounceOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl renounceOwnershipReturn {
fn _tokenize(
&self,
) -> <renounceOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for renounceOwnershipCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = renounceOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "renounceOwnership()";
const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
renounceOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`.
```solidity
function supportsInterface(bytes4 interfaceId) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct supportsInterfaceCall {
#[allow(missing_docs)]
pub interfaceId: alloy::sol_types::private::FixedBytes<4>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct supportsInterfaceReturn {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<supportsInterfaceCall>
for UnderlyingRustTuple<'_> {
fn from(value: supportsInterfaceCall) -> Self {
(value.interfaceId,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for supportsInterfaceCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { interfaceId: tuple.0 }
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<supportsInterfaceReturn>
for UnderlyingRustTuple<'_> {
fn from(value: supportsInterfaceReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for supportsInterfaceReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for supportsInterfaceCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "supportsInterface(bytes4)";
const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
4,
> as alloy_sol_types::SolType>::tokenize(&self.interfaceId),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: supportsInterfaceReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: supportsInterfaceReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
```solidity
function transferOwnership(address newOwner) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct transferOwnershipCall {
#[allow(missing_docs)]
pub newOwner: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct transferOwnershipReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipCall>
for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipCall) -> Self {
(value.newOwner,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for transferOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { newOwner: tuple.0 }
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipReturn>
for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for transferOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl transferOwnershipReturn {
fn _tokenize(
&self,
) -> <transferOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for transferOwnershipCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = transferOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "transferOwnership(address)";
const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newOwner,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
transferOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `validateOutput(bytes,(uint64,bytes32[]))` and selector `0xe88d39c0`.
```solidity
function validateOutput(bytes memory output, OutputValidityProof memory proof) external view;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct validateOutputCall {
#[allow(missing_docs)]
pub output: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`validateOutput(bytes,(uint64,bytes32[]))`](validateOutputCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct validateOutputReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Bytes,
OutputValidityProof,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Bytes,
<OutputValidityProof as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<validateOutputCall> for UnderlyingRustTuple<'_> {
fn from(value: validateOutputCall) -> Self {
(value.output, value.proof)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for validateOutputCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
output: tuple.0,
proof: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<validateOutputReturn>
for UnderlyingRustTuple<'_> {
fn from(value: validateOutputReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for validateOutputReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl validateOutputReturn {
fn _tokenize(
&self,
) -> <validateOutputCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for validateOutputCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Bytes,
OutputValidityProof,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = validateOutputReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "validateOutput(bytes,(uint64,bytes32[]))";
const SELECTOR: [u8; 4] = [232u8, 141u8, 57u8, 192u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.output,
),
<OutputValidityProof as alloy_sol_types::SolType>::tokenize(
&self.proof,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
validateOutputReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `validateOutputHash(bytes32,(uint64,bytes32[]))` and selector `0x08eb89ab`.
```solidity
function validateOutputHash(bytes32 outputHash, OutputValidityProof memory proof) external view;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct validateOutputHashCall {
#[allow(missing_docs)]
pub outputHash: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`validateOutputHash(bytes32,(uint64,bytes32[]))`](validateOutputHashCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct validateOutputHashReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
OutputValidityProof,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::FixedBytes<32>,
<OutputValidityProof as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<validateOutputHashCall>
for UnderlyingRustTuple<'_> {
fn from(value: validateOutputHashCall) -> Self {
(value.outputHash, value.proof)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for validateOutputHashCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
outputHash: tuple.0,
proof: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<validateOutputHashReturn>
for UnderlyingRustTuple<'_> {
fn from(value: validateOutputHashReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for validateOutputHashReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl validateOutputHashReturn {
fn _tokenize(
&self,
) -> <validateOutputHashCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for validateOutputHashCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
OutputValidityProof,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = validateOutputHashReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "validateOutputHash(bytes32,(uint64,bytes32[]))";
const SELECTOR: [u8; 4] = [8u8, 235u8, 137u8, 171u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.outputHash),
<OutputValidityProof as alloy_sol_types::SolType>::tokenize(
&self.proof,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
validateOutputHashReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `wasOutputExecuted(uint256)` and selector `0x71891db0`.
```solidity
function wasOutputExecuted(uint256 outputIndex) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct wasOutputExecutedCall {
#[allow(missing_docs)]
pub outputIndex: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`wasOutputExecuted(uint256)`](wasOutputExecutedCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct wasOutputExecutedReturn {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<wasOutputExecutedCall>
for UnderlyingRustTuple<'_> {
fn from(value: wasOutputExecutedCall) -> Self {
(value.outputIndex,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for wasOutputExecutedCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { outputIndex: tuple.0 }
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<wasOutputExecutedReturn>
for UnderlyingRustTuple<'_> {
fn from(value: wasOutputExecutedReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for wasOutputExecutedReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for wasOutputExecutedCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "wasOutputExecuted(uint256)";
const SELECTOR: [u8; 4] = [113u8, 137u8, 29u8, 176u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.outputIndex),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: wasOutputExecutedReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: wasOutputExecutedReturn = r.into();
r._0
})
}
}
};
///Container for all the [`Application`](self) function calls.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive()]
pub enum ApplicationCalls {
#[allow(missing_docs)]
executeOutput(executeOutputCall),
#[allow(missing_docs)]
getDataAvailability(getDataAvailabilityCall),
#[allow(missing_docs)]
getDeploymentBlockNumber(getDeploymentBlockNumberCall),
#[allow(missing_docs)]
getNumberOfExecutedOutputs(getNumberOfExecutedOutputsCall),
#[allow(missing_docs)]
getOutputsMerkleRootValidator(getOutputsMerkleRootValidatorCall),
#[allow(missing_docs)]
getTemplateHash(getTemplateHashCall),
#[allow(missing_docs)]
migrateToOutputsMerkleRootValidator(migrateToOutputsMerkleRootValidatorCall),
#[allow(missing_docs)]
onERC1155BatchReceived(onERC1155BatchReceivedCall),
#[allow(missing_docs)]
onERC1155Received(onERC1155ReceivedCall),
#[allow(missing_docs)]
onERC721Received(onERC721ReceivedCall),
#[allow(missing_docs)]
owner(ownerCall),
#[allow(missing_docs)]
renounceOwnership(renounceOwnershipCall),
#[allow(missing_docs)]
supportsInterface(supportsInterfaceCall),
#[allow(missing_docs)]
transferOwnership(transferOwnershipCall),
#[allow(missing_docs)]
validateOutput(validateOutputCall),
#[allow(missing_docs)]
validateOutputHash(validateOutputHashCall),
#[allow(missing_docs)]
wasOutputExecuted(wasOutputExecutedCall),
}
impl ApplicationCalls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[1u8, 255u8, 201u8, 167u8],
[8u8, 235u8, 137u8, 171u8],
[21u8, 11u8, 122u8, 2u8],
[51u8, 19u8, 123u8, 118u8],
[97u8, 177u8, 44u8, 102u8],
[113u8, 80u8, 24u8, 166u8],
[113u8, 137u8, 29u8, 176u8],
[141u8, 165u8, 203u8, 91u8],
[169u8, 77u8, 252u8, 90u8],
[179u8, 161u8, 172u8, 216u8],
[188u8, 25u8, 124u8, 129u8],
[191u8, 138u8, 191u8, 248u8],
[230u8, 79u8, 171u8, 77u8],
[232u8, 141u8, 57u8, 192u8],
[240u8, 36u8, 120u8, 222u8],
[242u8, 58u8, 110u8, 97u8],
[242u8, 253u8, 227u8, 139u8],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(supportsInterface),
::core::stringify!(validateOutputHash),
::core::stringify!(onERC721Received),
::core::stringify!(executeOutput),
::core::stringify!(getTemplateHash),
::core::stringify!(renounceOwnership),
::core::stringify!(wasOutputExecuted),
::core::stringify!(owner),
::core::stringify!(getOutputsMerkleRootValidator),
::core::stringify!(getDeploymentBlockNumber),
::core::stringify!(onERC1155BatchReceived),
::core::stringify!(migrateToOutputsMerkleRootValidator),
::core::stringify!(getNumberOfExecutedOutputs),
::core::stringify!(validateOutput),
::core::stringify!(getDataAvailability),
::core::stringify!(onERC1155Received),
::core::stringify!(transferOwnership),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<supportsInterfaceCall as alloy_sol_types::SolCall>::SIGNATURE,
<validateOutputHashCall as alloy_sol_types::SolCall>::SIGNATURE,
<onERC721ReceivedCall as alloy_sol_types::SolCall>::SIGNATURE,
<executeOutputCall as alloy_sol_types::SolCall>::SIGNATURE,
<getTemplateHashCall as alloy_sol_types::SolCall>::SIGNATURE,
<renounceOwnershipCall as alloy_sol_types::SolCall>::SIGNATURE,
<wasOutputExecutedCall as alloy_sol_types::SolCall>::SIGNATURE,
<ownerCall as alloy_sol_types::SolCall>::SIGNATURE,
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::SIGNATURE,
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::SIGNATURE,
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::SIGNATURE,
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::SIGNATURE,
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::SIGNATURE,
<validateOutputCall as alloy_sol_types::SolCall>::SIGNATURE,
<getDataAvailabilityCall as alloy_sol_types::SolCall>::SIGNATURE,
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::SIGNATURE,
<transferOwnershipCall as alloy_sol_types::SolCall>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for ApplicationCalls {
const NAME: &'static str = "ApplicationCalls";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 17usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::executeOutput(_) => {
<executeOutputCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getDataAvailability(_) => {
<getDataAvailabilityCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getDeploymentBlockNumber(_) => {
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getNumberOfExecutedOutputs(_) => {
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOutputsMerkleRootValidator(_) => {
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getTemplateHash(_) => {
<getTemplateHashCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::migrateToOutputsMerkleRootValidator(_) => {
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::onERC1155BatchReceived(_) => {
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::onERC1155Received(_) => {
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::onERC721Received(_) => {
<onERC721ReceivedCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
Self::renounceOwnership(_) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::supportsInterface(_) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::transferOwnership(_) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::validateOutput(_) => {
<validateOutputCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::validateOutputHash(_) => {
<validateOutputHashCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::wasOutputExecuted(_) => {
<wasOutputExecutedCall as alloy_sol_types::SolCall>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<ApplicationCalls>] = &[
{
fn supportsInterface(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::supportsInterface)
}
supportsInterface
},
{
fn validateOutputHash(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<validateOutputHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::validateOutputHash)
}
validateOutputHash
},
{
fn onERC721Received(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC721ReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::onERC721Received)
}
onERC721Received
},
{
fn executeOutput(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<executeOutputCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::executeOutput)
}
executeOutput
},
{
fn getTemplateHash(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getTemplateHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::getTemplateHash)
}
getTemplateHash
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::renounceOwnership)
}
renounceOwnership
},
{
fn wasOutputExecuted(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<wasOutputExecutedCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::wasOutputExecuted)
}
wasOutputExecuted
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<ApplicationCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(ApplicationCalls::owner)
}
owner
},
{
fn getOutputsMerkleRootValidator(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::getOutputsMerkleRootValidator)
}
getOutputsMerkleRootValidator
},
{
fn getDeploymentBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::getDeploymentBlockNumber)
}
getDeploymentBlockNumber
},
{
fn onERC1155BatchReceived(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::onERC1155BatchReceived)
}
onERC1155BatchReceived
},
{
fn migrateToOutputsMerkleRootValidator(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::migrateToOutputsMerkleRootValidator)
}
migrateToOutputsMerkleRootValidator
},
{
fn getNumberOfExecutedOutputs(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::getNumberOfExecutedOutputs)
}
getNumberOfExecutedOutputs
},
{
fn validateOutput(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<validateOutputCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::validateOutput)
}
validateOutput
},
{
fn getDataAvailability(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getDataAvailabilityCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::getDataAvailability)
}
getDataAvailability
},
{
fn onERC1155Received(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::onERC1155Received)
}
onERC1155Received
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(ApplicationCalls::transferOwnership)
}
transferOwnership
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<ApplicationCalls>] = &[
{
fn supportsInterface(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::supportsInterface)
}
supportsInterface
},
{
fn validateOutputHash(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<validateOutputHashCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::validateOutputHash)
}
validateOutputHash
},
{
fn onERC721Received(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC721ReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::onERC721Received)
}
onERC721Received
},
{
fn executeOutput(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<executeOutputCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::executeOutput)
}
executeOutput
},
{
fn getTemplateHash(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getTemplateHashCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::getTemplateHash)
}
getTemplateHash
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::renounceOwnership)
}
renounceOwnership
},
{
fn wasOutputExecuted(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<wasOutputExecutedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::wasOutputExecuted)
}
wasOutputExecuted
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<ApplicationCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::owner)
}
owner
},
{
fn getOutputsMerkleRootValidator(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::getOutputsMerkleRootValidator)
}
getOutputsMerkleRootValidator
},
{
fn getDeploymentBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::getDeploymentBlockNumber)
}
getDeploymentBlockNumber
},
{
fn onERC1155BatchReceived(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::onERC1155BatchReceived)
}
onERC1155BatchReceived
},
{
fn migrateToOutputsMerkleRootValidator(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::migrateToOutputsMerkleRootValidator)
}
migrateToOutputsMerkleRootValidator
},
{
fn getNumberOfExecutedOutputs(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::getNumberOfExecutedOutputs)
}
getNumberOfExecutedOutputs
},
{
fn validateOutput(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<validateOutputCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::validateOutput)
}
validateOutput
},
{
fn getDataAvailability(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<getDataAvailabilityCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::getDataAvailability)
}
getDataAvailability
},
{
fn onERC1155Received(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::onERC1155Received)
}
onERC1155Received
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(ApplicationCalls::transferOwnership)
}
transferOwnership
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::executeOutput(inner) => {
<executeOutputCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getDataAvailability(inner) => {
<getDataAvailabilityCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getDeploymentBlockNumber(inner) => {
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getNumberOfExecutedOutputs(inner) => {
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOutputsMerkleRootValidator(inner) => {
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getTemplateHash(inner) => {
<getTemplateHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::migrateToOutputsMerkleRootValidator(inner) => {
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::onERC1155BatchReceived(inner) => {
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::onERC1155Received(inner) => {
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::onERC721Received(inner) => {
<onERC721ReceivedCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::supportsInterface(inner) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::validateOutput(inner) => {
<validateOutputCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::validateOutputHash(inner) => {
<validateOutputHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::wasOutputExecuted(inner) => {
<wasOutputExecutedCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::executeOutput(inner) => {
<executeOutputCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getDataAvailability(inner) => {
<getDataAvailabilityCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getDeploymentBlockNumber(inner) => {
<getDeploymentBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getNumberOfExecutedOutputs(inner) => {
<getNumberOfExecutedOutputsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOutputsMerkleRootValidator(inner) => {
<getOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getTemplateHash(inner) => {
<getTemplateHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::migrateToOutputsMerkleRootValidator(inner) => {
<migrateToOutputsMerkleRootValidatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::onERC1155BatchReceived(inner) => {
<onERC1155BatchReceivedCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::onERC1155Received(inner) => {
<onERC1155ReceivedCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::onERC721Received(inner) => {
<onERC721ReceivedCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::supportsInterface(inner) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::validateOutput(inner) => {
<validateOutputCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::validateOutputHash(inner) => {
<validateOutputHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::wasOutputExecuted(inner) => {
<wasOutputExecutedCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
}
}
}
///Container for all the [`Application`](self) custom errors.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Debug, PartialEq, Eq, Hash)]
pub enum ApplicationErrors {
#[allow(missing_docs)]
InsufficientFunds(InsufficientFunds),
#[allow(missing_docs)]
InvalidOutputHashesSiblingsArrayLength(InvalidOutputHashesSiblingsArrayLength),
#[allow(missing_docs)]
InvalidOutputsMerkleRoot(InvalidOutputsMerkleRoot),
#[allow(missing_docs)]
OutputNotExecutable(OutputNotExecutable),
#[allow(missing_docs)]
OutputNotReexecutable(OutputNotReexecutable),
#[allow(missing_docs)]
OwnableInvalidOwner(OwnableInvalidOwner),
#[allow(missing_docs)]
OwnableUnauthorizedAccount(OwnableUnauthorizedAccount),
#[allow(missing_docs)]
ReentrancyGuardReentrantCall(ReentrancyGuardReentrantCall),
}
impl ApplicationErrors {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[3u8, 235u8, 139u8, 84u8],
[17u8, 140u8, 218u8, 167u8],
[30u8, 79u8, 189u8, 247u8],
[62u8, 229u8, 174u8, 181u8],
[68u8, 161u8, 146u8, 255u8],
[123u8, 151u8, 166u8, 187u8],
[186u8, 88u8, 189u8, 54u8],
[210u8, 132u8, 192u8, 30u8],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(InsufficientFunds),
::core::stringify!(OwnableUnauthorizedAccount),
::core::stringify!(OwnableInvalidOwner),
::core::stringify!(ReentrancyGuardReentrantCall),
::core::stringify!(InvalidOutputsMerkleRoot),
::core::stringify!(OutputNotReexecutable),
::core::stringify!(InvalidOutputHashesSiblingsArrayLength),
::core::stringify!(OutputNotExecutable),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<InsufficientFunds as alloy_sol_types::SolError>::SIGNATURE,
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::SIGNATURE,
<OwnableInvalidOwner as alloy_sol_types::SolError>::SIGNATURE,
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::SIGNATURE,
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::SIGNATURE,
<OutputNotReexecutable as alloy_sol_types::SolError>::SIGNATURE,
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::SIGNATURE,
<OutputNotExecutable as alloy_sol_types::SolError>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for ApplicationErrors {
const NAME: &'static str = "ApplicationErrors";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 8usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::InsufficientFunds(_) => {
<InsufficientFunds as alloy_sol_types::SolError>::SELECTOR
}
Self::InvalidOutputHashesSiblingsArrayLength(_) => {
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::SELECTOR
}
Self::InvalidOutputsMerkleRoot(_) => {
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::SELECTOR
}
Self::OutputNotExecutable(_) => {
<OutputNotExecutable as alloy_sol_types::SolError>::SELECTOR
}
Self::OutputNotReexecutable(_) => {
<OutputNotReexecutable as alloy_sol_types::SolError>::SELECTOR
}
Self::OwnableInvalidOwner(_) => {
<OwnableInvalidOwner as alloy_sol_types::SolError>::SELECTOR
}
Self::OwnableUnauthorizedAccount(_) => {
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::SELECTOR
}
Self::ReentrancyGuardReentrantCall(_) => {
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<ApplicationErrors>] = &[
{
fn InsufficientFunds(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InsufficientFunds as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::InsufficientFunds)
}
InsufficientFunds
},
{
fn OwnableUnauthorizedAccount(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::OwnableUnauthorizedAccount)
}
OwnableUnauthorizedAccount
},
{
fn OwnableInvalidOwner(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OwnableInvalidOwner as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::OwnableInvalidOwner)
}
OwnableInvalidOwner
},
{
fn ReentrancyGuardReentrantCall(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::ReentrancyGuardReentrantCall)
}
ReentrancyGuardReentrantCall
},
{
fn InvalidOutputsMerkleRoot(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::InvalidOutputsMerkleRoot)
}
InvalidOutputsMerkleRoot
},
{
fn OutputNotReexecutable(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OutputNotReexecutable as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::OutputNotReexecutable)
}
OutputNotReexecutable
},
{
fn InvalidOutputHashesSiblingsArrayLength(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(
ApplicationErrors::InvalidOutputHashesSiblingsArrayLength,
)
}
InvalidOutputHashesSiblingsArrayLength
},
{
fn OutputNotExecutable(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OutputNotExecutable as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(ApplicationErrors::OutputNotExecutable)
}
OutputNotExecutable
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<ApplicationErrors>] = &[
{
fn InsufficientFunds(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InsufficientFunds as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::InsufficientFunds)
}
InsufficientFunds
},
{
fn OwnableUnauthorizedAccount(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::OwnableUnauthorizedAccount)
}
OwnableUnauthorizedAccount
},
{
fn OwnableInvalidOwner(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OwnableInvalidOwner as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::OwnableInvalidOwner)
}
OwnableInvalidOwner
},
{
fn ReentrancyGuardReentrantCall(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::ReentrancyGuardReentrantCall)
}
ReentrancyGuardReentrantCall
},
{
fn InvalidOutputsMerkleRoot(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::InvalidOutputsMerkleRoot)
}
InvalidOutputsMerkleRoot
},
{
fn OutputNotReexecutable(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OutputNotReexecutable as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::OutputNotReexecutable)
}
OutputNotReexecutable
},
{
fn InvalidOutputHashesSiblingsArrayLength(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(
ApplicationErrors::InvalidOutputHashesSiblingsArrayLength,
)
}
InvalidOutputHashesSiblingsArrayLength
},
{
fn OutputNotExecutable(
data: &[u8],
) -> alloy_sol_types::Result<ApplicationErrors> {
<OutputNotExecutable as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(ApplicationErrors::OutputNotExecutable)
}
OutputNotExecutable
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::InsufficientFunds(inner) => {
<InsufficientFunds as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::InvalidOutputHashesSiblingsArrayLength(inner) => {
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::InvalidOutputsMerkleRoot(inner) => {
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::OutputNotExecutable(inner) => {
<OutputNotExecutable as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::OutputNotReexecutable(inner) => {
<OutputNotReexecutable as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::OwnableInvalidOwner(inner) => {
<OwnableInvalidOwner as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::OwnableUnauthorizedAccount(inner) => {
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ReentrancyGuardReentrantCall(inner) => {
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::InsufficientFunds(inner) => {
<InsufficientFunds as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::InvalidOutputHashesSiblingsArrayLength(inner) => {
<InvalidOutputHashesSiblingsArrayLength as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::InvalidOutputsMerkleRoot(inner) => {
<InvalidOutputsMerkleRoot as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::OutputNotExecutable(inner) => {
<OutputNotExecutable as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::OutputNotReexecutable(inner) => {
<OutputNotReexecutable as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::OwnableInvalidOwner(inner) => {
<OwnableInvalidOwner as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::OwnableUnauthorizedAccount(inner) => {
<OwnableUnauthorizedAccount as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ReentrancyGuardReentrantCall(inner) => {
<ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
}
}
}
///Container for all the [`Application`](self) events.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Debug, PartialEq, Eq, Hash)]
pub enum ApplicationEvents {
#[allow(missing_docs)]
OutputExecuted(OutputExecuted),
#[allow(missing_docs)]
OutputsMerkleRootValidatorChanged(OutputsMerkleRootValidatorChanged),
#[allow(missing_docs)]
OwnershipTransferred(OwnershipTransferred),
}
impl ApplicationEvents {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 32usize]] = &[
[
106u8, 211u8, 24u8, 139u8, 168u8, 244u8, 48u8, 251u8, 160u8, 101u8,
108u8, 176u8, 167u8, 232u8, 57u8, 171u8, 32u8, 32u8, 213u8, 88u8, 107u8,
161u8, 26u8, 20u8, 119u8, 209u8, 143u8, 112u8, 146u8, 248u8, 190u8, 206u8,
],
[
139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
],
[
202u8, 209u8, 243u8, 97u8, 198u8, 232u8, 70u8, 100u8, 232u8, 146u8, 35u8,
2u8, 145u8, 200u8, 232u8, 235u8, 149u8, 85u8, 104u8, 62u8, 10u8, 106u8,
92u8, 232u8, 234u8, 123u8, 32u8, 74u8, 192u8, 172u8, 54u8, 118u8,
],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(OutputsMerkleRootValidatorChanged),
::core::stringify!(OwnershipTransferred),
::core::stringify!(OutputExecuted),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<OutputsMerkleRootValidatorChanged as alloy_sol_types::SolEvent>::SIGNATURE,
<OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE,
<OutputExecuted as alloy_sol_types::SolEvent>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 32usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 32usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolEventInterface for ApplicationEvents {
const NAME: &'static str = "ApplicationEvents";
const COUNT: usize = 3usize;
fn decode_raw_log(
topics: &[alloy_sol_types::Word],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
match topics.first().copied() {
Some(<OutputExecuted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OutputExecuted as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::OutputExecuted)
}
Some(
<OutputsMerkleRootValidatorChanged as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<OutputsMerkleRootValidatorChanged as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::OutputsMerkleRootValidatorChanged)
}
Some(
<OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::OwnershipTransferred)
}
_ => {
alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
name: <Self as alloy_sol_types::SolEventInterface>::NAME,
log: alloy_sol_types::private::Box::new(
alloy_sol_types::private::LogData::new_unchecked(
topics.to_vec(),
data.to_vec().into(),
),
),
})
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for ApplicationEvents {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
match self {
Self::OutputExecuted(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OutputsMerkleRootValidatorChanged(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
}
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
match self {
Self::OutputExecuted(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OutputsMerkleRootValidatorChanged(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
}
}
}
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`Application`](self) contract instance.
See the [wrapper's documentation](`ApplicationInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
__provider: P,
) -> ApplicationInstance<P, N> {
ApplicationInstance::<P, N>::new(address, __provider)
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub fn deploy<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
__provider: P,
outputsMerkleRootValidator: alloy::sol_types::private::Address,
initialOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
) -> impl ::core::future::Future<
Output = alloy_contract::Result<ApplicationInstance<P, N>>,
> {
ApplicationInstance::<
P,
N,
>::deploy(
__provider,
outputsMerkleRootValidator,
initialOwner,
templateHash,
dataAvailability,
)
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
__provider: P,
outputsMerkleRootValidator: alloy::sol_types::private::Address,
initialOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
) -> alloy_contract::RawCallBuilder<P, N> {
ApplicationInstance::<
P,
N,
>::deploy_builder(
__provider,
outputsMerkleRootValidator,
initialOwner,
templateHash,
dataAvailability,
)
}
/**A [`Application`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`Application`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct ApplicationInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for ApplicationInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ApplicationInstance").field(&self.address).finish()
}
}
/// Instantiation and getters/setters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> ApplicationInstance<P, N> {
/**Creates a new wrapper around an on-chain [`Application`](self) contract instance.
See the [wrapper's documentation](`ApplicationInstance`) for more details.*/
#[inline]
pub const fn new(
address: alloy_sol_types::private::Address,
__provider: P,
) -> Self {
Self {
address,
provider: __provider,
_network: ::core::marker::PhantomData,
}
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub async fn deploy(
__provider: P,
outputsMerkleRootValidator: alloy::sol_types::private::Address,
initialOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
) -> alloy_contract::Result<ApplicationInstance<P, N>> {
let call_builder = Self::deploy_builder(
__provider,
outputsMerkleRootValidator,
initialOwner,
templateHash,
dataAvailability,
);
let contract_address = call_builder.deploy().await?;
Ok(Self::new(contract_address, call_builder.provider))
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder(
__provider: P,
outputsMerkleRootValidator: alloy::sol_types::private::Address,
initialOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
__provider,
[
&BYTECODE[..],
&alloy_sol_types::SolConstructor::abi_encode(
&constructorCall {
outputsMerkleRootValidator,
initialOwner,
templateHash,
dataAvailability,
},
)[..],
]
.concat()
.into(),
)
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> ApplicationInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> ApplicationInstance<P, N> {
ApplicationInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> ApplicationInstance<P, N> {
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
///Creates a new call builder for the [`executeOutput`] function.
pub fn executeOutput(
&self,
output: alloy::sol_types::private::Bytes,
proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, executeOutputCall, N> {
self.call_builder(&executeOutputCall { output, proof })
}
///Creates a new call builder for the [`getDataAvailability`] function.
pub fn getDataAvailability(
&self,
) -> alloy_contract::SolCallBuilder<&P, getDataAvailabilityCall, N> {
self.call_builder(&getDataAvailabilityCall)
}
///Creates a new call builder for the [`getDeploymentBlockNumber`] function.
pub fn getDeploymentBlockNumber(
&self,
) -> alloy_contract::SolCallBuilder<&P, getDeploymentBlockNumberCall, N> {
self.call_builder(&getDeploymentBlockNumberCall)
}
///Creates a new call builder for the [`getNumberOfExecutedOutputs`] function.
pub fn getNumberOfExecutedOutputs(
&self,
) -> alloy_contract::SolCallBuilder<&P, getNumberOfExecutedOutputsCall, N> {
self.call_builder(&getNumberOfExecutedOutputsCall)
}
///Creates a new call builder for the [`getOutputsMerkleRootValidator`] function.
pub fn getOutputsMerkleRootValidator(
&self,
) -> alloy_contract::SolCallBuilder<&P, getOutputsMerkleRootValidatorCall, N> {
self.call_builder(&getOutputsMerkleRootValidatorCall)
}
///Creates a new call builder for the [`getTemplateHash`] function.
pub fn getTemplateHash(
&self,
) -> alloy_contract::SolCallBuilder<&P, getTemplateHashCall, N> {
self.call_builder(&getTemplateHashCall)
}
///Creates a new call builder for the [`migrateToOutputsMerkleRootValidator`] function.
pub fn migrateToOutputsMerkleRootValidator(
&self,
newOutputsMerkleRootValidator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<
&P,
migrateToOutputsMerkleRootValidatorCall,
N,
> {
self.call_builder(
&migrateToOutputsMerkleRootValidatorCall {
newOutputsMerkleRootValidator,
},
)
}
///Creates a new call builder for the [`onERC1155BatchReceived`] function.
pub fn onERC1155BatchReceived(
&self,
_0: alloy::sol_types::private::Address,
_1: alloy::sol_types::private::Address,
_2: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
_3: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
_4: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, onERC1155BatchReceivedCall, N> {
self.call_builder(
&onERC1155BatchReceivedCall {
_0,
_1,
_2,
_3,
_4,
},
)
}
///Creates a new call builder for the [`onERC1155Received`] function.
pub fn onERC1155Received(
&self,
_0: alloy::sol_types::private::Address,
_1: alloy::sol_types::private::Address,
_2: alloy::sol_types::private::primitives::aliases::U256,
_3: alloy::sol_types::private::primitives::aliases::U256,
_4: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, onERC1155ReceivedCall, N> {
self.call_builder(
&onERC1155ReceivedCall {
_0,
_1,
_2,
_3,
_4,
},
)
}
///Creates a new call builder for the [`onERC721Received`] function.
pub fn onERC721Received(
&self,
_0: alloy::sol_types::private::Address,
_1: alloy::sol_types::private::Address,
_2: alloy::sol_types::private::primitives::aliases::U256,
_3: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, onERC721ReceivedCall, N> {
self.call_builder(
&onERC721ReceivedCall {
_0,
_1,
_2,
_3,
},
)
}
///Creates a new call builder for the [`owner`] function.
pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> {
self.call_builder(&ownerCall)
}
///Creates a new call builder for the [`renounceOwnership`] function.
pub fn renounceOwnership(
&self,
) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> {
self.call_builder(&renounceOwnershipCall)
}
///Creates a new call builder for the [`supportsInterface`] function.
pub fn supportsInterface(
&self,
interfaceId: alloy::sol_types::private::FixedBytes<4>,
) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> {
self.call_builder(
&supportsInterfaceCall {
interfaceId,
},
)
}
///Creates a new call builder for the [`transferOwnership`] function.
pub fn transferOwnership(
&self,
newOwner: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> {
self.call_builder(&transferOwnershipCall { newOwner })
}
///Creates a new call builder for the [`validateOutput`] function.
pub fn validateOutput(
&self,
output: alloy::sol_types::private::Bytes,
proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, validateOutputCall, N> {
self.call_builder(
&validateOutputCall {
output,
proof,
},
)
}
///Creates a new call builder for the [`validateOutputHash`] function.
pub fn validateOutputHash(
&self,
outputHash: alloy::sol_types::private::FixedBytes<32>,
proof: <OutputValidityProof as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, validateOutputHashCall, N> {
self.call_builder(
&validateOutputHashCall {
outputHash,
proof,
},
)
}
///Creates a new call builder for the [`wasOutputExecuted`] function.
pub fn wasOutputExecuted(
&self,
outputIndex: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, wasOutputExecutedCall, N> {
self.call_builder(
&wasOutputExecutedCall {
outputIndex,
},
)
}
}
/// Event filters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> ApplicationInstance<P, N> {
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
///Creates a new event filter for the [`OutputExecuted`] event.
pub fn OutputExecuted_filter(
&self,
) -> alloy_contract::Event<&P, OutputExecuted, N> {
self.event_filter::<OutputExecuted>()
}
///Creates a new event filter for the [`OutputsMerkleRootValidatorChanged`] event.
pub fn OutputsMerkleRootValidatorChanged_filter(
&self,
) -> alloy_contract::Event<&P, OutputsMerkleRootValidatorChanged, N> {
self.event_filter::<OutputsMerkleRootValidatorChanged>()
}
///Creates a new event filter for the [`OwnershipTransferred`] event.
pub fn OwnershipTransferred_filter(
&self,
) -> alloy_contract::Event<&P, OwnershipTransferred, N> {
self.event_filter::<OwnershipTransferred>()
}
}
}