pod_contracts/
fasttypes.rs

1/**
2
3Generated by the following Solidity interface...
4```solidity
5interface FastTypes {
6    struct Constant {
7        bytes32 key;
8    }
9    struct Counter {
10        bytes32 key;
11    }
12    struct Owned {
13        bytes32 key;
14        address owner;
15    }
16    struct Set {
17        bytes32 key;
18    }
19
20    function get(Owned memory o) external view returns (bytes32);
21    function requireExist(Set memory s, bytes32 value) external view;
22    function requireGet(Constant memory c) external view returns (bytes32);
23    function requireGte(Counter memory c, uint256 value) external view;
24}
25```
26
27...which was generated by the following JSON ABI:
28```json
29[
30  {
31    "type": "function",
32    "name": "get",
33    "inputs": [
34      {
35        "name": "o",
36        "type": "tuple",
37        "internalType": "struct FastTypes.Owned",
38        "components": [
39          {
40            "name": "key",
41            "type": "bytes32",
42            "internalType": "bytes32"
43          },
44          {
45            "name": "owner",
46            "type": "address",
47            "internalType": "address"
48          }
49        ]
50      }
51    ],
52    "outputs": [
53      {
54        "name": "",
55        "type": "bytes32",
56        "internalType": "bytes32"
57      }
58    ],
59    "stateMutability": "view"
60  },
61  {
62    "type": "function",
63    "name": "requireExist",
64    "inputs": [
65      {
66        "name": "s",
67        "type": "tuple",
68        "internalType": "struct FastTypes.Set",
69        "components": [
70          {
71            "name": "key",
72            "type": "bytes32",
73            "internalType": "bytes32"
74          }
75        ]
76      },
77      {
78        "name": "value",
79        "type": "bytes32",
80        "internalType": "bytes32"
81      }
82    ],
83    "outputs": [],
84    "stateMutability": "view"
85  },
86  {
87    "type": "function",
88    "name": "requireGet",
89    "inputs": [
90      {
91        "name": "c",
92        "type": "tuple",
93        "internalType": "struct FastTypes.Constant",
94        "components": [
95          {
96            "name": "key",
97            "type": "bytes32",
98            "internalType": "bytes32"
99          }
100        ]
101      }
102    ],
103    "outputs": [
104      {
105        "name": "",
106        "type": "bytes32",
107        "internalType": "bytes32"
108      }
109    ],
110    "stateMutability": "view"
111  },
112  {
113    "type": "function",
114    "name": "requireGte",
115    "inputs": [
116      {
117        "name": "c",
118        "type": "tuple",
119        "internalType": "struct FastTypes.Counter",
120        "components": [
121          {
122            "name": "key",
123            "type": "bytes32",
124            "internalType": "bytes32"
125          }
126        ]
127      },
128      {
129        "name": "value",
130        "type": "uint256",
131        "internalType": "uint256"
132      }
133    ],
134    "outputs": [],
135    "stateMutability": "view"
136  }
137]
138```*/
139#[allow(
140    non_camel_case_types,
141    non_snake_case,
142    clippy::pub_underscore_fields,
143    clippy::style,
144    clippy::empty_structs_with_brackets
145)]
146pub mod FastTypes {
147    use super::*;
148    use alloy::sol_types as alloy_sol_types;
149    /// The creation / init bytecode of the contract.
150    ///
151    /// ```text
152    ///0x610cd7610052600b82828239805160001a6073146045577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80635d4b516a116100655780635d4b516a14610135578063c23ea93f14610151578063c351e50e1461017a578063ce612173146101a357610092565b806319a8a2ef1461009757806341b5d9d6146100c75780634f787429146100f057806351be29981461010c575b600080fd5b6100b160048036038101906100ac919061091f565b6101d3565b6040516100be919061095b565b60405180910390f35b8180156100d357600080fd5b506100ee60048036038101906100e99190610976565b6102f1565b005b61010a600480360381019061010591906109f2565b6103fd565b005b81801561011857600080fd5b50610133600480360381019061012e9190610aa4565b610493565b005b61014f600480360381019061014a9190610aa4565b61052b565b005b81801561015d57600080fd5b50610178600480360381019061017391906109f2565b6105c1565b005b81801561018657600080fd5b506101a1600480360381019061019c9190610b20565b610659565b005b6101bd60048036038101906101b89190610b60565b6106f1565b6040516101ca919061095b565b60405180910390f35b6000813273ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614610248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023f90610bea565b60405180910390fd5b7f7d2d1f8d84d195dcc899290eb18352040bd9223dd7d501e658c3bed6e0a6070e60001c73ffffffffffffffffffffffffffffffffffffffff16638eaa6ac084600001516040518263ffffffff1660e01b81526004016102a89190610c19565b602060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e99190610c49565b915050919050565b813273ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614610364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035b90610bea565b60405180910390fd5b7f7d2d1f8d84d195dcc899290eb18352040bd9223dd7d501e658c3bed6e0a6070e60001c73ffffffffffffffffffffffffffffffffffffffff1663f71f7a258460000151846040518363ffffffff1660e01b81526004016103c6929190610c76565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b50505050505050565b7f5d76ed4c69af2700c0f0549cc92f1d2de4161569993a5827febf0e87cd9d05c660001c73ffffffffffffffffffffffffffffffffffffffff16638635a5918360000151836040518363ffffffff1660e01b815260040161045f929190610c76565b60006040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050505050565b7fa60b329c3b13cac404a59349a3c90de858eed5c9e20f3e57c0f7383ab622579560001c73ffffffffffffffffffffffffffffffffffffffff16630affc4378360000151836040518363ffffffff1660e01b81526004016104f5929190610cae565b600060405180830381600087803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b505050505050565b7fa60b329c3b13cac404a59349a3c90de858eed5c9e20f3e57c0f7383ab622579560001c73ffffffffffffffffffffffffffffffffffffffff1663b14a26768360000151836040518363ffffffff1660e01b815260040161058d929190610cae565b60006040518083038186803b1580156105a557600080fd5b505afa1580156105b9573d6000803e3d6000fd5b505050505050565b7f5d76ed4c69af2700c0f0549cc92f1d2de4161569993a5827febf0e87cd9d05c660001c73ffffffffffffffffffffffffffffffffffffffff1663feac36d78360000151836040518363ffffffff1660e01b8152600401610623929190610c76565b600060405180830381600087803b15801561063d57600080fd5b505af1158015610651573d6000803e3d6000fd5b505050505050565b7fdb435ac8f7748d114bf4e740895cb428cb79ea557ee94ab5d3f6b282fefe18b660001c73ffffffffffffffffffffffffffffffffffffffff1663634bc7db8360000151836040518363ffffffff1660e01b81526004016106bb929190610c76565b600060405180830381600087803b1580156106d557600080fd5b505af11580156106e9573d6000803e3d6000fd5b505050505050565b60007fdb435ac8f7748d114bf4e740895cb428cb79ea557ee94ab5d3f6b282fefe18b660001c73ffffffffffffffffffffffffffffffffffffffff16635f55e92883600001516040518263ffffffff1660e01b81526004016107539190610c19565b602060405180830381865afa158015610770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107949190610c49565b9050919050565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107f8826107af565b810181811067ffffffffffffffff82111715610817576108166107c0565b5b80604052505050565b600061082a61079b565b905061083682826107ef565b919050565b6000819050919050565b61084e8161083b565b811461085957600080fd5b50565b60008135905061086b81610845565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061089c82610871565b9050919050565b6108ac81610891565b81146108b757600080fd5b50565b6000813590506108c9816108a3565b92915050565b6000604082840312156108e5576108e46107aa565b5b6108ef6040610820565b905060006108ff8482850161085c565b6000830152506020610913848285016108ba565b60208301525092915050565b600060408284031215610935576109346107a5565b5b6000610943848285016108cf565b91505092915050565b6109558161083b565b82525050565b6000602082019050610970600083018461094c565b92915050565b6000806060838503121561098d5761098c6107a5565b5b600061099b858286016108cf565b92505060406109ac8582860161085c565b9150509250929050565b6000602082840312156109cc576109cb6107aa565b5b6109d66020610820565b905060006109e68482850161085c565b60008301525092915050565b60008060408385031215610a0957610a086107a5565b5b6000610a17858286016109b6565b9250506020610a288582860161085c565b9150509250929050565b600060208284031215610a4857610a476107aa565b5b610a526020610820565b90506000610a628482850161085c565b60008301525092915050565b6000819050919050565b610a8181610a6e565b8114610a8c57600080fd5b50565b600081359050610a9e81610a78565b92915050565b60008060408385031215610abb57610aba6107a5565b5b6000610ac985828601610a32565b9250506020610ada85828601610a8f565b9150509250929050565b600060208284031215610afa57610af96107aa565b5b610b046020610820565b90506000610b148482850161085c565b60008301525092915050565b60008060408385031215610b3757610b366107a5565b5b6000610b4585828601610ae4565b9250506020610b568582860161085c565b9150509250929050565b600060208284031215610b7657610b756107a5565b5b6000610b8484828501610ae4565b91505092915050565b600082825260208201905092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000610bd4600d83610b8d565b9150610bdf82610b9e565b602082019050919050565b60006020820190508181036000830152610c0381610bc7565b9050919050565b610c138161083b565b82525050565b6000602082019050610c2e6000830184610c0a565b92915050565b600081519050610c4381610845565b92915050565b600060208284031215610c5f57610c5e6107a5565b5b6000610c6d84828501610c34565b91505092915050565b6000604082019050610c8b6000830185610c0a565b610c986020830184610c0a565b9392505050565b610ca881610a6e565b82525050565b6000604082019050610cc36000830185610c0a565b610cd06020830184610c9f565b939250505056
153    /// ```
154    #[rustfmt::skip]
155    #[allow(clippy::all)]
156    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
157        b"a\x0C\xD7a\0R`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14`EW\x7FNH{q\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`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x92W`\x005`\xE0\x1C\x80c]KQj\x11a\0eW\x80c]KQj\x14a\x015W\x80c\xC2>\xA9?\x14a\x01QW\x80c\xC3Q\xE5\x0E\x14a\x01zW\x80c\xCEa!s\x14a\x01\xA3Wa\0\x92V[\x80c\x19\xA8\xA2\xEF\x14a\0\x97W\x80cA\xB5\xD9\xD6\x14a\0\xC7W\x80cOxt)\x14a\0\xF0W\x80cQ\xBE)\x98\x14a\x01\x0CW[`\0\x80\xFD[a\0\xB1`\x04\x806\x03\x81\x01\x90a\0\xAC\x91\x90a\t\x1FV[a\x01\xD3V[`@Qa\0\xBE\x91\x90a\t[V[`@Q\x80\x91\x03\x90\xF3[\x81\x80\x15a\0\xD3W`\0\x80\xFD[Pa\0\xEE`\x04\x806\x03\x81\x01\x90a\0\xE9\x91\x90a\tvV[a\x02\xF1V[\0[a\x01\n`\x04\x806\x03\x81\x01\x90a\x01\x05\x91\x90a\t\xF2V[a\x03\xFDV[\0[\x81\x80\x15a\x01\x18W`\0\x80\xFD[Pa\x013`\x04\x806\x03\x81\x01\x90a\x01.\x91\x90a\n\xA4V[a\x04\x93V[\0[a\x01O`\x04\x806\x03\x81\x01\x90a\x01J\x91\x90a\n\xA4V[a\x05+V[\0[\x81\x80\x15a\x01]W`\0\x80\xFD[Pa\x01x`\x04\x806\x03\x81\x01\x90a\x01s\x91\x90a\t\xF2V[a\x05\xC1V[\0[\x81\x80\x15a\x01\x86W`\0\x80\xFD[Pa\x01\xA1`\x04\x806\x03\x81\x01\x90a\x01\x9C\x91\x90a\x0B V[a\x06YV[\0[a\x01\xBD`\x04\x806\x03\x81\x01\x90a\x01\xB8\x91\x90a\x0B`V[a\x06\xF1V[`@Qa\x01\xCA\x91\x90a\t[V[`@Q\x80\x91\x03\x90\xF3[`\0\x812s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02HW`@Q\x7F\x08\xC3y\xA0\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`\x04\x01a\x02?\x90a\x0B\xEAV[`@Q\x80\x91\x03\x90\xFD[\x7F}-\x1F\x8D\x84\xD1\x95\xDC\xC8\x99)\x0E\xB1\x83R\x04\x0B\xD9\"=\xD7\xD5\x01\xE6X\xC3\xBE\xD6\xE0\xA6\x07\x0E`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8E\xAAj\xC0\x84`\0\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x02\xA8\x91\x90a\x0C\x19V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xE9\x91\x90a\x0CIV[\x91PP\x91\x90PV[\x812s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03dW`@Q\x7F\x08\xC3y\xA0\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`\x04\x01a\x03[\x90a\x0B\xEAV[`@Q\x80\x91\x03\x90\xFD[\x7F}-\x1F\x8D\x84\xD1\x95\xDC\xC8\x99)\x0E\xB1\x83R\x04\x0B\xD9\"=\xD7\xD5\x01\xE6X\xC3\xBE\xD6\xE0\xA6\x07\x0E`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF7\x1Fz%\x84`\0\x01Q\x84`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x03\xC6\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\xE0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xF4W=`\0\x80>=`\0\xFD[PPPPPPPV[\x7F]v\xEDLi\xAF'\0\xC0\xF0T\x9C\xC9/\x1D-\xE4\x16\x15i\x99:X'\xFE\xBF\x0E\x87\xCD\x9D\x05\xC6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x865\xA5\x91\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x04_\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x04wW`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x04\x8BW=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xA6\x0B2\x9C;\x13\xCA\xC4\x04\xA5\x93I\xA3\xC9\r\xE8X\xEE\xD5\xC9\xE2\x0F>W\xC0\xF78:\xB6\"W\x95`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\n\xFF\xC47\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x04\xF5\x92\x91\x90a\x0C\xAEV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x05\x0FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05#W=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xA6\x0B2\x9C;\x13\xCA\xC4\x04\xA5\x93I\xA3\xC9\r\xE8X\xEE\xD5\xC9\xE2\x0F>W\xC0\xF78:\xB6\"W\x95`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xB1J&v\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\x8D\x92\x91\x90a\x0C\xAEV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x05\xA5W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x05\xB9W=`\0\x80>=`\0\xFD[PPPPPPV[\x7F]v\xEDLi\xAF'\0\xC0\xF0T\x9C\xC9/\x1D-\xE4\x16\x15i\x99:X'\xFE\xBF\x0E\x87\xCD\x9D\x05\xC6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFE\xAC6\xD7\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x06#\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x06=W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x06QW=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xDBCZ\xC8\xF7t\x8D\x11K\xF4\xE7@\x89\\\xB4(\xCBy\xEAU~\xE9J\xB5\xD3\xF6\xB2\x82\xFE\xFE\x18\xB6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16ccK\xC7\xDB\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x06\xBB\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x06\xD5W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x06\xE9W=`\0\x80>=`\0\xFD[PPPPPPV[`\0\x7F\xDBCZ\xC8\xF7t\x8D\x11K\xF4\xE7@\x89\\\xB4(\xCBy\xEAU~\xE9J\xB5\xD3\xF6\xB2\x82\xFE\xFE\x18\xB6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c_U\xE9(\x83`\0\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x07S\x91\x90a\x0C\x19V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07pW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x94\x91\x90a\x0CIV[\x90P\x91\x90PV[`\0`@Q\x90P\x90V[`\0\x80\xFD[`\0\x80\xFD[`\0`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[\x7FNH{q\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`\0R`A`\x04R`$`\0\xFD[a\x07\xF8\x82a\x07\xAFV[\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x08\x17Wa\x08\x16a\x07\xC0V[[\x80`@RPPPV[`\0a\x08*a\x07\x9BV[\x90Pa\x086\x82\x82a\x07\xEFV[\x91\x90PV[`\0\x81\x90P\x91\x90PV[a\x08N\x81a\x08;V[\x81\x14a\x08YW`\0\x80\xFD[PV[`\0\x815\x90Pa\x08k\x81a\x08EV[\x92\x91PPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[`\0a\x08\x9C\x82a\x08qV[\x90P\x91\x90PV[a\x08\xAC\x81a\x08\x91V[\x81\x14a\x08\xB7W`\0\x80\xFD[PV[`\0\x815\x90Pa\x08\xC9\x81a\x08\xA3V[\x92\x91PPV[`\0`@\x82\x84\x03\x12\x15a\x08\xE5Wa\x08\xE4a\x07\xAAV[[a\x08\xEF`@a\x08 V[\x90P`\0a\x08\xFF\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP` a\t\x13\x84\x82\x85\x01a\x08\xBAV[` \x83\x01RP\x92\x91PPV[`\0`@\x82\x84\x03\x12\x15a\t5Wa\t4a\x07\xA5V[[`\0a\tC\x84\x82\x85\x01a\x08\xCFV[\x91PP\x92\x91PPV[a\tU\x81a\x08;V[\x82RPPV[`\0` \x82\x01\x90Pa\tp`\0\x83\x01\x84a\tLV[\x92\x91PPV[`\0\x80``\x83\x85\x03\x12\x15a\t\x8DWa\t\x8Ca\x07\xA5V[[`\0a\t\x9B\x85\x82\x86\x01a\x08\xCFV[\x92PP`@a\t\xAC\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\t\xCCWa\t\xCBa\x07\xAAV[[a\t\xD6` a\x08 V[\x90P`\0a\t\xE6\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\n\tWa\n\x08a\x07\xA5V[[`\0a\n\x17\x85\x82\x86\x01a\t\xB6V[\x92PP` a\n(\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\nHWa\nGa\x07\xAAV[[a\nR` a\x08 V[\x90P`\0a\nb\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x81\x90P\x91\x90PV[a\n\x81\x81a\nnV[\x81\x14a\n\x8CW`\0\x80\xFD[PV[`\0\x815\x90Pa\n\x9E\x81a\nxV[\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\n\xBBWa\n\xBAa\x07\xA5V[[`\0a\n\xC9\x85\x82\x86\x01a\n2V[\x92PP` a\n\xDA\x85\x82\x86\x01a\n\x8FV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\n\xFAWa\n\xF9a\x07\xAAV[[a\x0B\x04` a\x08 V[\x90P`\0a\x0B\x14\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B7Wa\x0B6a\x07\xA5V[[`\0a\x0BE\x85\x82\x86\x01a\n\xE4V[\x92PP` a\x0BV\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0BvWa\x0Bua\x07\xA5V[[`\0a\x0B\x84\x84\x82\x85\x01a\n\xE4V[\x91PP\x92\x91PPV[`\0\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FNot the owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x82\x01RPV[`\0a\x0B\xD4`\r\x83a\x0B\x8DV[\x91Pa\x0B\xDF\x82a\x0B\x9EV[` \x82\x01\x90P\x91\x90PV[`\0` \x82\x01\x90P\x81\x81\x03`\0\x83\x01Ra\x0C\x03\x81a\x0B\xC7V[\x90P\x91\x90PV[a\x0C\x13\x81a\x08;V[\x82RPPV[`\0` \x82\x01\x90Pa\x0C.`\0\x83\x01\x84a\x0C\nV[\x92\x91PPV[`\0\x81Q\x90Pa\x0CC\x81a\x08EV[\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x0C_Wa\x0C^a\x07\xA5V[[`\0a\x0Cm\x84\x82\x85\x01a\x0C4V[\x91PP\x92\x91PPV[`\0`@\x82\x01\x90Pa\x0C\x8B`\0\x83\x01\x85a\x0C\nV[a\x0C\x98` \x83\x01\x84a\x0C\nV[\x93\x92PPPV[a\x0C\xA8\x81a\nnV[\x82RPPV[`\0`@\x82\x01\x90Pa\x0C\xC3`\0\x83\x01\x85a\x0C\nV[a\x0C\xD0` \x83\x01\x84a\x0C\x9FV[\x93\x92PPPV",
158    );
159    /// The runtime bytecode of the contract, as deployed on the network.
160    ///
161    /// ```text
162    ///0x73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80635d4b516a116100655780635d4b516a14610135578063c23ea93f14610151578063c351e50e1461017a578063ce612173146101a357610092565b806319a8a2ef1461009757806341b5d9d6146100c75780634f787429146100f057806351be29981461010c575b600080fd5b6100b160048036038101906100ac919061091f565b6101d3565b6040516100be919061095b565b60405180910390f35b8180156100d357600080fd5b506100ee60048036038101906100e99190610976565b6102f1565b005b61010a600480360381019061010591906109f2565b6103fd565b005b81801561011857600080fd5b50610133600480360381019061012e9190610aa4565b610493565b005b61014f600480360381019061014a9190610aa4565b61052b565b005b81801561015d57600080fd5b50610178600480360381019061017391906109f2565b6105c1565b005b81801561018657600080fd5b506101a1600480360381019061019c9190610b20565b610659565b005b6101bd60048036038101906101b89190610b60565b6106f1565b6040516101ca919061095b565b60405180910390f35b6000813273ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614610248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023f90610bea565b60405180910390fd5b7f7d2d1f8d84d195dcc899290eb18352040bd9223dd7d501e658c3bed6e0a6070e60001c73ffffffffffffffffffffffffffffffffffffffff16638eaa6ac084600001516040518263ffffffff1660e01b81526004016102a89190610c19565b602060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e99190610c49565b915050919050565b813273ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614610364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035b90610bea565b60405180910390fd5b7f7d2d1f8d84d195dcc899290eb18352040bd9223dd7d501e658c3bed6e0a6070e60001c73ffffffffffffffffffffffffffffffffffffffff1663f71f7a258460000151846040518363ffffffff1660e01b81526004016103c6929190610c76565b600060405180830381600087803b1580156103e057600080fd5b505af11580156103f4573d6000803e3d6000fd5b50505050505050565b7f5d76ed4c69af2700c0f0549cc92f1d2de4161569993a5827febf0e87cd9d05c660001c73ffffffffffffffffffffffffffffffffffffffff16638635a5918360000151836040518363ffffffff1660e01b815260040161045f929190610c76565b60006040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050505050565b7fa60b329c3b13cac404a59349a3c90de858eed5c9e20f3e57c0f7383ab622579560001c73ffffffffffffffffffffffffffffffffffffffff16630affc4378360000151836040518363ffffffff1660e01b81526004016104f5929190610cae565b600060405180830381600087803b15801561050f57600080fd5b505af1158015610523573d6000803e3d6000fd5b505050505050565b7fa60b329c3b13cac404a59349a3c90de858eed5c9e20f3e57c0f7383ab622579560001c73ffffffffffffffffffffffffffffffffffffffff1663b14a26768360000151836040518363ffffffff1660e01b815260040161058d929190610cae565b60006040518083038186803b1580156105a557600080fd5b505afa1580156105b9573d6000803e3d6000fd5b505050505050565b7f5d76ed4c69af2700c0f0549cc92f1d2de4161569993a5827febf0e87cd9d05c660001c73ffffffffffffffffffffffffffffffffffffffff1663feac36d78360000151836040518363ffffffff1660e01b8152600401610623929190610c76565b600060405180830381600087803b15801561063d57600080fd5b505af1158015610651573d6000803e3d6000fd5b505050505050565b7fdb435ac8f7748d114bf4e740895cb428cb79ea557ee94ab5d3f6b282fefe18b660001c73ffffffffffffffffffffffffffffffffffffffff1663634bc7db8360000151836040518363ffffffff1660e01b81526004016106bb929190610c76565b600060405180830381600087803b1580156106d557600080fd5b505af11580156106e9573d6000803e3d6000fd5b505050505050565b60007fdb435ac8f7748d114bf4e740895cb428cb79ea557ee94ab5d3f6b282fefe18b660001c73ffffffffffffffffffffffffffffffffffffffff16635f55e92883600001516040518263ffffffff1660e01b81526004016107539190610c19565b602060405180830381865afa158015610770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107949190610c49565b9050919050565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107f8826107af565b810181811067ffffffffffffffff82111715610817576108166107c0565b5b80604052505050565b600061082a61079b565b905061083682826107ef565b919050565b6000819050919050565b61084e8161083b565b811461085957600080fd5b50565b60008135905061086b81610845565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061089c82610871565b9050919050565b6108ac81610891565b81146108b757600080fd5b50565b6000813590506108c9816108a3565b92915050565b6000604082840312156108e5576108e46107aa565b5b6108ef6040610820565b905060006108ff8482850161085c565b6000830152506020610913848285016108ba565b60208301525092915050565b600060408284031215610935576109346107a5565b5b6000610943848285016108cf565b91505092915050565b6109558161083b565b82525050565b6000602082019050610970600083018461094c565b92915050565b6000806060838503121561098d5761098c6107a5565b5b600061099b858286016108cf565b92505060406109ac8582860161085c565b9150509250929050565b6000602082840312156109cc576109cb6107aa565b5b6109d66020610820565b905060006109e68482850161085c565b60008301525092915050565b60008060408385031215610a0957610a086107a5565b5b6000610a17858286016109b6565b9250506020610a288582860161085c565b9150509250929050565b600060208284031215610a4857610a476107aa565b5b610a526020610820565b90506000610a628482850161085c565b60008301525092915050565b6000819050919050565b610a8181610a6e565b8114610a8c57600080fd5b50565b600081359050610a9e81610a78565b92915050565b60008060408385031215610abb57610aba6107a5565b5b6000610ac985828601610a32565b9250506020610ada85828601610a8f565b9150509250929050565b600060208284031215610afa57610af96107aa565b5b610b046020610820565b90506000610b148482850161085c565b60008301525092915050565b60008060408385031215610b3757610b366107a5565b5b6000610b4585828601610ae4565b9250506020610b568582860161085c565b9150509250929050565b600060208284031215610b7657610b756107a5565b5b6000610b8484828501610ae4565b91505092915050565b600082825260208201905092915050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000610bd4600d83610b8d565b9150610bdf82610b9e565b602082019050919050565b60006020820190508181036000830152610c0381610bc7565b9050919050565b610c138161083b565b82525050565b6000602082019050610c2e6000830184610c0a565b92915050565b600081519050610c4381610845565b92915050565b600060208284031215610c5f57610c5e6107a5565b5b6000610c6d84828501610c34565b91505092915050565b6000604082019050610c8b6000830185610c0a565b610c986020830184610c0a565b9392505050565b610ca881610a6e565b82525050565b6000604082019050610cc36000830185610c0a565b610cd06020830184610c9f565b939250505056
163    /// ```
164    #[rustfmt::skip]
165    #[allow(clippy::all)]
166    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
167        b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x92W`\x005`\xE0\x1C\x80c]KQj\x11a\0eW\x80c]KQj\x14a\x015W\x80c\xC2>\xA9?\x14a\x01QW\x80c\xC3Q\xE5\x0E\x14a\x01zW\x80c\xCEa!s\x14a\x01\xA3Wa\0\x92V[\x80c\x19\xA8\xA2\xEF\x14a\0\x97W\x80cA\xB5\xD9\xD6\x14a\0\xC7W\x80cOxt)\x14a\0\xF0W\x80cQ\xBE)\x98\x14a\x01\x0CW[`\0\x80\xFD[a\0\xB1`\x04\x806\x03\x81\x01\x90a\0\xAC\x91\x90a\t\x1FV[a\x01\xD3V[`@Qa\0\xBE\x91\x90a\t[V[`@Q\x80\x91\x03\x90\xF3[\x81\x80\x15a\0\xD3W`\0\x80\xFD[Pa\0\xEE`\x04\x806\x03\x81\x01\x90a\0\xE9\x91\x90a\tvV[a\x02\xF1V[\0[a\x01\n`\x04\x806\x03\x81\x01\x90a\x01\x05\x91\x90a\t\xF2V[a\x03\xFDV[\0[\x81\x80\x15a\x01\x18W`\0\x80\xFD[Pa\x013`\x04\x806\x03\x81\x01\x90a\x01.\x91\x90a\n\xA4V[a\x04\x93V[\0[a\x01O`\x04\x806\x03\x81\x01\x90a\x01J\x91\x90a\n\xA4V[a\x05+V[\0[\x81\x80\x15a\x01]W`\0\x80\xFD[Pa\x01x`\x04\x806\x03\x81\x01\x90a\x01s\x91\x90a\t\xF2V[a\x05\xC1V[\0[\x81\x80\x15a\x01\x86W`\0\x80\xFD[Pa\x01\xA1`\x04\x806\x03\x81\x01\x90a\x01\x9C\x91\x90a\x0B V[a\x06YV[\0[a\x01\xBD`\x04\x806\x03\x81\x01\x90a\x01\xB8\x91\x90a\x0B`V[a\x06\xF1V[`@Qa\x01\xCA\x91\x90a\t[V[`@Q\x80\x91\x03\x90\xF3[`\0\x812s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02HW`@Q\x7F\x08\xC3y\xA0\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`\x04\x01a\x02?\x90a\x0B\xEAV[`@Q\x80\x91\x03\x90\xFD[\x7F}-\x1F\x8D\x84\xD1\x95\xDC\xC8\x99)\x0E\xB1\x83R\x04\x0B\xD9\"=\xD7\xD5\x01\xE6X\xC3\xBE\xD6\xE0\xA6\x07\x0E`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x8E\xAAj\xC0\x84`\0\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x02\xA8\x91\x90a\x0C\x19V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x02\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x02\xE9\x91\x90a\x0CIV[\x91PP\x91\x90PV[\x812s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81` \x01Qs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03dW`@Q\x7F\x08\xC3y\xA0\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`\x04\x01a\x03[\x90a\x0B\xEAV[`@Q\x80\x91\x03\x90\xFD[\x7F}-\x1F\x8D\x84\xD1\x95\xDC\xC8\x99)\x0E\xB1\x83R\x04\x0B\xD9\"=\xD7\xD5\x01\xE6X\xC3\xBE\xD6\xE0\xA6\x07\x0E`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xF7\x1Fz%\x84`\0\x01Q\x84`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x03\xC6\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x03\xE0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x03\xF4W=`\0\x80>=`\0\xFD[PPPPPPPV[\x7F]v\xEDLi\xAF'\0\xC0\xF0T\x9C\xC9/\x1D-\xE4\x16\x15i\x99:X'\xFE\xBF\x0E\x87\xCD\x9D\x05\xC6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\x865\xA5\x91\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x04_\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x04wW`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x04\x8BW=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xA6\x0B2\x9C;\x13\xCA\xC4\x04\xA5\x93I\xA3\xC9\r\xE8X\xEE\xD5\xC9\xE2\x0F>W\xC0\xF78:\xB6\"W\x95`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\n\xFF\xC47\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x04\xF5\x92\x91\x90a\x0C\xAEV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x05\x0FW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x05#W=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xA6\x0B2\x9C;\x13\xCA\xC4\x04\xA5\x93I\xA3\xC9\r\xE8X\xEE\xD5\xC9\xE2\x0F>W\xC0\xF78:\xB6\"W\x95`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xB1J&v\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x05\x8D\x92\x91\x90a\x0C\xAEV[`\0`@Q\x80\x83\x03\x81\x86\x80;\x15\x80\x15a\x05\xA5W`\0\x80\xFD[PZ\xFA\x15\x80\x15a\x05\xB9W=`\0\x80>=`\0\xFD[PPPPPPV[\x7F]v\xEDLi\xAF'\0\xC0\xF0T\x9C\xC9/\x1D-\xE4\x16\x15i\x99:X'\xFE\xBF\x0E\x87\xCD\x9D\x05\xC6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c\xFE\xAC6\xD7\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x06#\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x06=W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x06QW=`\0\x80>=`\0\xFD[PPPPPPV[\x7F\xDBCZ\xC8\xF7t\x8D\x11K\xF4\xE7@\x89\\\xB4(\xCBy\xEAU~\xE9J\xB5\xD3\xF6\xB2\x82\xFE\xFE\x18\xB6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16ccK\xC7\xDB\x83`\0\x01Q\x83`@Q\x83c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x06\xBB\x92\x91\x90a\x0CvV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x06\xD5W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x06\xE9W=`\0\x80>=`\0\xFD[PPPPPPV[`\0\x7F\xDBCZ\xC8\xF7t\x8D\x11K\xF4\xE7@\x89\\\xB4(\xCBy\xEAU~\xE9J\xB5\xD3\xF6\xB2\x82\xFE\xFE\x18\xB6`\0\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16c_U\xE9(\x83`\0\x01Q`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x07S\x91\x90a\x0C\x19V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07pW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x94\x91\x90a\x0CIV[\x90P\x91\x90PV[`\0`@Q\x90P\x90V[`\0\x80\xFD[`\0\x80\xFD[`\0`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[\x7FNH{q\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`\0R`A`\x04R`$`\0\xFD[a\x07\xF8\x82a\x07\xAFV[\x81\x01\x81\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17\x15a\x08\x17Wa\x08\x16a\x07\xC0V[[\x80`@RPPPV[`\0a\x08*a\x07\x9BV[\x90Pa\x086\x82\x82a\x07\xEFV[\x91\x90PV[`\0\x81\x90P\x91\x90PV[a\x08N\x81a\x08;V[\x81\x14a\x08YW`\0\x80\xFD[PV[`\0\x815\x90Pa\x08k\x81a\x08EV[\x92\x91PPV[`\0s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[`\0a\x08\x9C\x82a\x08qV[\x90P\x91\x90PV[a\x08\xAC\x81a\x08\x91V[\x81\x14a\x08\xB7W`\0\x80\xFD[PV[`\0\x815\x90Pa\x08\xC9\x81a\x08\xA3V[\x92\x91PPV[`\0`@\x82\x84\x03\x12\x15a\x08\xE5Wa\x08\xE4a\x07\xAAV[[a\x08\xEF`@a\x08 V[\x90P`\0a\x08\xFF\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP` a\t\x13\x84\x82\x85\x01a\x08\xBAV[` \x83\x01RP\x92\x91PPV[`\0`@\x82\x84\x03\x12\x15a\t5Wa\t4a\x07\xA5V[[`\0a\tC\x84\x82\x85\x01a\x08\xCFV[\x91PP\x92\x91PPV[a\tU\x81a\x08;V[\x82RPPV[`\0` \x82\x01\x90Pa\tp`\0\x83\x01\x84a\tLV[\x92\x91PPV[`\0\x80``\x83\x85\x03\x12\x15a\t\x8DWa\t\x8Ca\x07\xA5V[[`\0a\t\x9B\x85\x82\x86\x01a\x08\xCFV[\x92PP`@a\t\xAC\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\t\xCCWa\t\xCBa\x07\xAAV[[a\t\xD6` a\x08 V[\x90P`\0a\t\xE6\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\n\tWa\n\x08a\x07\xA5V[[`\0a\n\x17\x85\x82\x86\x01a\t\xB6V[\x92PP` a\n(\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\nHWa\nGa\x07\xAAV[[a\nR` a\x08 V[\x90P`\0a\nb\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x81\x90P\x91\x90PV[a\n\x81\x81a\nnV[\x81\x14a\n\x8CW`\0\x80\xFD[PV[`\0\x815\x90Pa\n\x9E\x81a\nxV[\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\n\xBBWa\n\xBAa\x07\xA5V[[`\0a\n\xC9\x85\x82\x86\x01a\n2V[\x92PP` a\n\xDA\x85\x82\x86\x01a\n\x8FV[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\n\xFAWa\n\xF9a\x07\xAAV[[a\x0B\x04` a\x08 V[\x90P`\0a\x0B\x14\x84\x82\x85\x01a\x08\\V[`\0\x83\x01RP\x92\x91PPV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B7Wa\x0B6a\x07\xA5V[[`\0a\x0BE\x85\x82\x86\x01a\n\xE4V[\x92PP` a\x0BV\x85\x82\x86\x01a\x08\\V[\x91PP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x0BvWa\x0Bua\x07\xA5V[[`\0a\x0B\x84\x84\x82\x85\x01a\n\xE4V[\x91PP\x92\x91PPV[`\0\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FNot the owner\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\x82\x01RPV[`\0a\x0B\xD4`\r\x83a\x0B\x8DV[\x91Pa\x0B\xDF\x82a\x0B\x9EV[` \x82\x01\x90P\x91\x90PV[`\0` \x82\x01\x90P\x81\x81\x03`\0\x83\x01Ra\x0C\x03\x81a\x0B\xC7V[\x90P\x91\x90PV[a\x0C\x13\x81a\x08;V[\x82RPPV[`\0` \x82\x01\x90Pa\x0C.`\0\x83\x01\x84a\x0C\nV[\x92\x91PPV[`\0\x81Q\x90Pa\x0CC\x81a\x08EV[\x92\x91PPV[`\0` \x82\x84\x03\x12\x15a\x0C_Wa\x0C^a\x07\xA5V[[`\0a\x0Cm\x84\x82\x85\x01a\x0C4V[\x91PP\x92\x91PPV[`\0`@\x82\x01\x90Pa\x0C\x8B`\0\x83\x01\x85a\x0C\nV[a\x0C\x98` \x83\x01\x84a\x0C\nV[\x93\x92PPPV[a\x0C\xA8\x81a\nnV[\x82RPPV[`\0`@\x82\x01\x90Pa\x0C\xC3`\0\x83\x01\x85a\x0C\nV[a\x0C\xD0` \x83\x01\x84a\x0C\x9FV[\x93\x92PPPV",
168    );
169    #[derive(Default, Debug, PartialEq, Eq, Hash)]
170    /**```solidity
171struct Constant { bytes32 key; }
172```*/
173    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
174    #[derive(Clone)]
175    pub struct Constant {
176        #[allow(missing_docs)]
177        pub key: alloy::sol_types::private::FixedBytes<32>,
178    }
179    #[allow(
180        non_camel_case_types,
181        non_snake_case,
182        clippy::pub_underscore_fields,
183        clippy::style
184    )]
185    const _: () = {
186        use alloy::sol_types as alloy_sol_types;
187        #[doc(hidden)]
188        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
189        #[doc(hidden)]
190        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
191        #[cfg(test)]
192        #[allow(dead_code, unreachable_patterns)]
193        fn _type_assertion(
194            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
195        ) {
196            match _t {
197                alloy_sol_types::private::AssertTypeEq::<
198                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
199                >(_) => {}
200            }
201        }
202        #[automatically_derived]
203        #[doc(hidden)]
204        impl ::core::convert::From<Constant> for UnderlyingRustTuple<'_> {
205            fn from(value: Constant) -> Self {
206                (value.key,)
207            }
208        }
209        #[automatically_derived]
210        #[doc(hidden)]
211        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Constant {
212            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
213                Self { key: tuple.0 }
214            }
215        }
216        #[automatically_derived]
217        impl alloy_sol_types::SolValue for Constant {
218            type SolType = Self;
219        }
220        #[automatically_derived]
221        impl alloy_sol_types::private::SolTypeValue<Self> for Constant {
222            #[inline]
223            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
224                (
225                    <alloy::sol_types::sol_data::FixedBytes<
226                        32,
227                    > as alloy_sol_types::SolType>::tokenize(&self.key),
228                )
229            }
230            #[inline]
231            fn stv_abi_encoded_size(&self) -> usize {
232                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
233                    return size;
234                }
235                let tuple = <UnderlyingRustTuple<
236                    '_,
237                > as ::core::convert::From<Self>>::from(self.clone());
238                <UnderlyingSolTuple<
239                    '_,
240                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
241            }
242            #[inline]
243            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
244                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
245            }
246            #[inline]
247            fn stv_abi_encode_packed_to(
248                &self,
249                out: &mut alloy_sol_types::private::Vec<u8>,
250            ) {
251                let tuple = <UnderlyingRustTuple<
252                    '_,
253                > as ::core::convert::From<Self>>::from(self.clone());
254                <UnderlyingSolTuple<
255                    '_,
256                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
257            }
258            #[inline]
259            fn stv_abi_packed_encoded_size(&self) -> usize {
260                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
261                    return size;
262                }
263                let tuple = <UnderlyingRustTuple<
264                    '_,
265                > as ::core::convert::From<Self>>::from(self.clone());
266                <UnderlyingSolTuple<
267                    '_,
268                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
269            }
270        }
271        #[automatically_derived]
272        impl alloy_sol_types::SolType for Constant {
273            type RustType = Self;
274            type Token<'a> = <UnderlyingSolTuple<
275                'a,
276            > as alloy_sol_types::SolType>::Token<'a>;
277            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
278            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
279                '_,
280            > as alloy_sol_types::SolType>::ENCODED_SIZE;
281            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
282                '_,
283            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
284            #[inline]
285            fn valid_token(token: &Self::Token<'_>) -> bool {
286                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
287            }
288            #[inline]
289            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
290                let tuple = <UnderlyingSolTuple<
291                    '_,
292                > as alloy_sol_types::SolType>::detokenize(token);
293                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
294            }
295        }
296        #[automatically_derived]
297        impl alloy_sol_types::SolStruct for Constant {
298            const NAME: &'static str = "Constant";
299            #[inline]
300            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
301                alloy_sol_types::private::Cow::Borrowed("Constant(bytes32 key)")
302            }
303            #[inline]
304            fn eip712_components() -> alloy_sol_types::private::Vec<
305                alloy_sol_types::private::Cow<'static, str>,
306            > {
307                alloy_sol_types::private::Vec::new()
308            }
309            #[inline]
310            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
311                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
312            }
313            #[inline]
314            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
315                <alloy::sol_types::sol_data::FixedBytes<
316                    32,
317                > as alloy_sol_types::SolType>::eip712_data_word(&self.key)
318                    .0
319                    .to_vec()
320            }
321        }
322        #[automatically_derived]
323        impl alloy_sol_types::EventTopic for Constant {
324            #[inline]
325            fn topic_preimage_length(rust: &Self::RustType) -> usize {
326                0usize
327                    + <alloy::sol_types::sol_data::FixedBytes<
328                        32,
329                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.key)
330            }
331            #[inline]
332            fn encode_topic_preimage(
333                rust: &Self::RustType,
334                out: &mut alloy_sol_types::private::Vec<u8>,
335            ) {
336                out.reserve(
337                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
338                );
339                <alloy::sol_types::sol_data::FixedBytes<
340                    32,
341                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.key, out);
342            }
343            #[inline]
344            fn encode_topic(
345                rust: &Self::RustType,
346            ) -> alloy_sol_types::abi::token::WordToken {
347                let mut out = alloy_sol_types::private::Vec::new();
348                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
349                    rust,
350                    &mut out,
351                );
352                alloy_sol_types::abi::token::WordToken(
353                    alloy_sol_types::private::keccak256(out),
354                )
355            }
356        }
357    };
358    #[derive(Default, Debug, PartialEq, Eq, Hash)]
359    /**```solidity
360struct Counter { bytes32 key; }
361```*/
362    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
363    #[derive(Clone)]
364    pub struct Counter {
365        #[allow(missing_docs)]
366        pub key: alloy::sol_types::private::FixedBytes<32>,
367    }
368    #[allow(
369        non_camel_case_types,
370        non_snake_case,
371        clippy::pub_underscore_fields,
372        clippy::style
373    )]
374    const _: () = {
375        use alloy::sol_types as alloy_sol_types;
376        #[doc(hidden)]
377        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
378        #[doc(hidden)]
379        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
380        #[cfg(test)]
381        #[allow(dead_code, unreachable_patterns)]
382        fn _type_assertion(
383            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
384        ) {
385            match _t {
386                alloy_sol_types::private::AssertTypeEq::<
387                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
388                >(_) => {}
389            }
390        }
391        #[automatically_derived]
392        #[doc(hidden)]
393        impl ::core::convert::From<Counter> for UnderlyingRustTuple<'_> {
394            fn from(value: Counter) -> Self {
395                (value.key,)
396            }
397        }
398        #[automatically_derived]
399        #[doc(hidden)]
400        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Counter {
401            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
402                Self { key: tuple.0 }
403            }
404        }
405        #[automatically_derived]
406        impl alloy_sol_types::SolValue for Counter {
407            type SolType = Self;
408        }
409        #[automatically_derived]
410        impl alloy_sol_types::private::SolTypeValue<Self> for Counter {
411            #[inline]
412            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
413                (
414                    <alloy::sol_types::sol_data::FixedBytes<
415                        32,
416                    > as alloy_sol_types::SolType>::tokenize(&self.key),
417                )
418            }
419            #[inline]
420            fn stv_abi_encoded_size(&self) -> usize {
421                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
422                    return size;
423                }
424                let tuple = <UnderlyingRustTuple<
425                    '_,
426                > as ::core::convert::From<Self>>::from(self.clone());
427                <UnderlyingSolTuple<
428                    '_,
429                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
430            }
431            #[inline]
432            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
433                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
434            }
435            #[inline]
436            fn stv_abi_encode_packed_to(
437                &self,
438                out: &mut alloy_sol_types::private::Vec<u8>,
439            ) {
440                let tuple = <UnderlyingRustTuple<
441                    '_,
442                > as ::core::convert::From<Self>>::from(self.clone());
443                <UnderlyingSolTuple<
444                    '_,
445                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
446            }
447            #[inline]
448            fn stv_abi_packed_encoded_size(&self) -> usize {
449                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
450                    return size;
451                }
452                let tuple = <UnderlyingRustTuple<
453                    '_,
454                > as ::core::convert::From<Self>>::from(self.clone());
455                <UnderlyingSolTuple<
456                    '_,
457                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
458            }
459        }
460        #[automatically_derived]
461        impl alloy_sol_types::SolType for Counter {
462            type RustType = Self;
463            type Token<'a> = <UnderlyingSolTuple<
464                'a,
465            > as alloy_sol_types::SolType>::Token<'a>;
466            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
467            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
468                '_,
469            > as alloy_sol_types::SolType>::ENCODED_SIZE;
470            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
471                '_,
472            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
473            #[inline]
474            fn valid_token(token: &Self::Token<'_>) -> bool {
475                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
476            }
477            #[inline]
478            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
479                let tuple = <UnderlyingSolTuple<
480                    '_,
481                > as alloy_sol_types::SolType>::detokenize(token);
482                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
483            }
484        }
485        #[automatically_derived]
486        impl alloy_sol_types::SolStruct for Counter {
487            const NAME: &'static str = "Counter";
488            #[inline]
489            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
490                alloy_sol_types::private::Cow::Borrowed("Counter(bytes32 key)")
491            }
492            #[inline]
493            fn eip712_components() -> alloy_sol_types::private::Vec<
494                alloy_sol_types::private::Cow<'static, str>,
495            > {
496                alloy_sol_types::private::Vec::new()
497            }
498            #[inline]
499            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
500                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
501            }
502            #[inline]
503            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
504                <alloy::sol_types::sol_data::FixedBytes<
505                    32,
506                > as alloy_sol_types::SolType>::eip712_data_word(&self.key)
507                    .0
508                    .to_vec()
509            }
510        }
511        #[automatically_derived]
512        impl alloy_sol_types::EventTopic for Counter {
513            #[inline]
514            fn topic_preimage_length(rust: &Self::RustType) -> usize {
515                0usize
516                    + <alloy::sol_types::sol_data::FixedBytes<
517                        32,
518                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.key)
519            }
520            #[inline]
521            fn encode_topic_preimage(
522                rust: &Self::RustType,
523                out: &mut alloy_sol_types::private::Vec<u8>,
524            ) {
525                out.reserve(
526                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
527                );
528                <alloy::sol_types::sol_data::FixedBytes<
529                    32,
530                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.key, out);
531            }
532            #[inline]
533            fn encode_topic(
534                rust: &Self::RustType,
535            ) -> alloy_sol_types::abi::token::WordToken {
536                let mut out = alloy_sol_types::private::Vec::new();
537                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
538                    rust,
539                    &mut out,
540                );
541                alloy_sol_types::abi::token::WordToken(
542                    alloy_sol_types::private::keccak256(out),
543                )
544            }
545        }
546    };
547    #[derive(Default, Debug, PartialEq, Eq, Hash)]
548    /**```solidity
549struct Owned { bytes32 key; address owner; }
550```*/
551    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
552    #[derive(Clone)]
553    pub struct Owned {
554        #[allow(missing_docs)]
555        pub key: alloy::sol_types::private::FixedBytes<32>,
556        #[allow(missing_docs)]
557        pub owner: alloy::sol_types::private::Address,
558    }
559    #[allow(
560        non_camel_case_types,
561        non_snake_case,
562        clippy::pub_underscore_fields,
563        clippy::style
564    )]
565    const _: () = {
566        use alloy::sol_types as alloy_sol_types;
567        #[doc(hidden)]
568        type UnderlyingSolTuple<'a> = (
569            alloy::sol_types::sol_data::FixedBytes<32>,
570            alloy::sol_types::sol_data::Address,
571        );
572        #[doc(hidden)]
573        type UnderlyingRustTuple<'a> = (
574            alloy::sol_types::private::FixedBytes<32>,
575            alloy::sol_types::private::Address,
576        );
577        #[cfg(test)]
578        #[allow(dead_code, unreachable_patterns)]
579        fn _type_assertion(
580            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
581        ) {
582            match _t {
583                alloy_sol_types::private::AssertTypeEq::<
584                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
585                >(_) => {}
586            }
587        }
588        #[automatically_derived]
589        #[doc(hidden)]
590        impl ::core::convert::From<Owned> for UnderlyingRustTuple<'_> {
591            fn from(value: Owned) -> Self {
592                (value.key, value.owner)
593            }
594        }
595        #[automatically_derived]
596        #[doc(hidden)]
597        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Owned {
598            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
599                Self {
600                    key: tuple.0,
601                    owner: tuple.1,
602                }
603            }
604        }
605        #[automatically_derived]
606        impl alloy_sol_types::SolValue for Owned {
607            type SolType = Self;
608        }
609        #[automatically_derived]
610        impl alloy_sol_types::private::SolTypeValue<Self> for Owned {
611            #[inline]
612            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
613                (
614                    <alloy::sol_types::sol_data::FixedBytes<
615                        32,
616                    > as alloy_sol_types::SolType>::tokenize(&self.key),
617                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
618                        &self.owner,
619                    ),
620                )
621            }
622            #[inline]
623            fn stv_abi_encoded_size(&self) -> usize {
624                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
625                    return size;
626                }
627                let tuple = <UnderlyingRustTuple<
628                    '_,
629                > as ::core::convert::From<Self>>::from(self.clone());
630                <UnderlyingSolTuple<
631                    '_,
632                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
633            }
634            #[inline]
635            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
636                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
637            }
638            #[inline]
639            fn stv_abi_encode_packed_to(
640                &self,
641                out: &mut alloy_sol_types::private::Vec<u8>,
642            ) {
643                let tuple = <UnderlyingRustTuple<
644                    '_,
645                > as ::core::convert::From<Self>>::from(self.clone());
646                <UnderlyingSolTuple<
647                    '_,
648                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
649            }
650            #[inline]
651            fn stv_abi_packed_encoded_size(&self) -> usize {
652                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
653                    return size;
654                }
655                let tuple = <UnderlyingRustTuple<
656                    '_,
657                > as ::core::convert::From<Self>>::from(self.clone());
658                <UnderlyingSolTuple<
659                    '_,
660                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
661            }
662        }
663        #[automatically_derived]
664        impl alloy_sol_types::SolType for Owned {
665            type RustType = Self;
666            type Token<'a> = <UnderlyingSolTuple<
667                'a,
668            > as alloy_sol_types::SolType>::Token<'a>;
669            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
670            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
671                '_,
672            > as alloy_sol_types::SolType>::ENCODED_SIZE;
673            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
674                '_,
675            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
676            #[inline]
677            fn valid_token(token: &Self::Token<'_>) -> bool {
678                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
679            }
680            #[inline]
681            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
682                let tuple = <UnderlyingSolTuple<
683                    '_,
684                > as alloy_sol_types::SolType>::detokenize(token);
685                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
686            }
687        }
688        #[automatically_derived]
689        impl alloy_sol_types::SolStruct for Owned {
690            const NAME: &'static str = "Owned";
691            #[inline]
692            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
693                alloy_sol_types::private::Cow::Borrowed(
694                    "Owned(bytes32 key,address owner)",
695                )
696            }
697            #[inline]
698            fn eip712_components() -> alloy_sol_types::private::Vec<
699                alloy_sol_types::private::Cow<'static, str>,
700            > {
701                alloy_sol_types::private::Vec::new()
702            }
703            #[inline]
704            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
705                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
706            }
707            #[inline]
708            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
709                [
710                    <alloy::sol_types::sol_data::FixedBytes<
711                        32,
712                    > as alloy_sol_types::SolType>::eip712_data_word(&self.key)
713                        .0,
714                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
715                            &self.owner,
716                        )
717                        .0,
718                ]
719                    .concat()
720            }
721        }
722        #[automatically_derived]
723        impl alloy_sol_types::EventTopic for Owned {
724            #[inline]
725            fn topic_preimage_length(rust: &Self::RustType) -> usize {
726                0usize
727                    + <alloy::sol_types::sol_data::FixedBytes<
728                        32,
729                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.key)
730                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
731                        &rust.owner,
732                    )
733            }
734            #[inline]
735            fn encode_topic_preimage(
736                rust: &Self::RustType,
737                out: &mut alloy_sol_types::private::Vec<u8>,
738            ) {
739                out.reserve(
740                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
741                );
742                <alloy::sol_types::sol_data::FixedBytes<
743                    32,
744                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.key, out);
745                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
746                    &rust.owner,
747                    out,
748                );
749            }
750            #[inline]
751            fn encode_topic(
752                rust: &Self::RustType,
753            ) -> alloy_sol_types::abi::token::WordToken {
754                let mut out = alloy_sol_types::private::Vec::new();
755                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
756                    rust,
757                    &mut out,
758                );
759                alloy_sol_types::abi::token::WordToken(
760                    alloy_sol_types::private::keccak256(out),
761                )
762            }
763        }
764    };
765    #[derive(Default, Debug, PartialEq, Eq, Hash)]
766    /**```solidity
767struct Set { bytes32 key; }
768```*/
769    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
770    #[derive(Clone)]
771    pub struct Set {
772        #[allow(missing_docs)]
773        pub key: alloy::sol_types::private::FixedBytes<32>,
774    }
775    #[allow(
776        non_camel_case_types,
777        non_snake_case,
778        clippy::pub_underscore_fields,
779        clippy::style
780    )]
781    const _: () = {
782        use alloy::sol_types as alloy_sol_types;
783        #[doc(hidden)]
784        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
785        #[doc(hidden)]
786        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
787        #[cfg(test)]
788        #[allow(dead_code, unreachable_patterns)]
789        fn _type_assertion(
790            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
791        ) {
792            match _t {
793                alloy_sol_types::private::AssertTypeEq::<
794                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
795                >(_) => {}
796            }
797        }
798        #[automatically_derived]
799        #[doc(hidden)]
800        impl ::core::convert::From<Set> for UnderlyingRustTuple<'_> {
801            fn from(value: Set) -> Self {
802                (value.key,)
803            }
804        }
805        #[automatically_derived]
806        #[doc(hidden)]
807        impl ::core::convert::From<UnderlyingRustTuple<'_>> for Set {
808            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
809                Self { key: tuple.0 }
810            }
811        }
812        #[automatically_derived]
813        impl alloy_sol_types::SolValue for Set {
814            type SolType = Self;
815        }
816        #[automatically_derived]
817        impl alloy_sol_types::private::SolTypeValue<Self> for Set {
818            #[inline]
819            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
820                (
821                    <alloy::sol_types::sol_data::FixedBytes<
822                        32,
823                    > as alloy_sol_types::SolType>::tokenize(&self.key),
824                )
825            }
826            #[inline]
827            fn stv_abi_encoded_size(&self) -> usize {
828                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
829                    return size;
830                }
831                let tuple = <UnderlyingRustTuple<
832                    '_,
833                > as ::core::convert::From<Self>>::from(self.clone());
834                <UnderlyingSolTuple<
835                    '_,
836                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
837            }
838            #[inline]
839            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
840                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
841            }
842            #[inline]
843            fn stv_abi_encode_packed_to(
844                &self,
845                out: &mut alloy_sol_types::private::Vec<u8>,
846            ) {
847                let tuple = <UnderlyingRustTuple<
848                    '_,
849                > as ::core::convert::From<Self>>::from(self.clone());
850                <UnderlyingSolTuple<
851                    '_,
852                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
853            }
854            #[inline]
855            fn stv_abi_packed_encoded_size(&self) -> usize {
856                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
857                    return size;
858                }
859                let tuple = <UnderlyingRustTuple<
860                    '_,
861                > as ::core::convert::From<Self>>::from(self.clone());
862                <UnderlyingSolTuple<
863                    '_,
864                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
865            }
866        }
867        #[automatically_derived]
868        impl alloy_sol_types::SolType for Set {
869            type RustType = Self;
870            type Token<'a> = <UnderlyingSolTuple<
871                'a,
872            > as alloy_sol_types::SolType>::Token<'a>;
873            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
874            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
875                '_,
876            > as alloy_sol_types::SolType>::ENCODED_SIZE;
877            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
878                '_,
879            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
880            #[inline]
881            fn valid_token(token: &Self::Token<'_>) -> bool {
882                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
883            }
884            #[inline]
885            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
886                let tuple = <UnderlyingSolTuple<
887                    '_,
888                > as alloy_sol_types::SolType>::detokenize(token);
889                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
890            }
891        }
892        #[automatically_derived]
893        impl alloy_sol_types::SolStruct for Set {
894            const NAME: &'static str = "Set";
895            #[inline]
896            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
897                alloy_sol_types::private::Cow::Borrowed("Set(bytes32 key)")
898            }
899            #[inline]
900            fn eip712_components() -> alloy_sol_types::private::Vec<
901                alloy_sol_types::private::Cow<'static, str>,
902            > {
903                alloy_sol_types::private::Vec::new()
904            }
905            #[inline]
906            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
907                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
908            }
909            #[inline]
910            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
911                <alloy::sol_types::sol_data::FixedBytes<
912                    32,
913                > as alloy_sol_types::SolType>::eip712_data_word(&self.key)
914                    .0
915                    .to_vec()
916            }
917        }
918        #[automatically_derived]
919        impl alloy_sol_types::EventTopic for Set {
920            #[inline]
921            fn topic_preimage_length(rust: &Self::RustType) -> usize {
922                0usize
923                    + <alloy::sol_types::sol_data::FixedBytes<
924                        32,
925                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.key)
926            }
927            #[inline]
928            fn encode_topic_preimage(
929                rust: &Self::RustType,
930                out: &mut alloy_sol_types::private::Vec<u8>,
931            ) {
932                out.reserve(
933                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
934                );
935                <alloy::sol_types::sol_data::FixedBytes<
936                    32,
937                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.key, out);
938            }
939            #[inline]
940            fn encode_topic(
941                rust: &Self::RustType,
942            ) -> alloy_sol_types::abi::token::WordToken {
943                let mut out = alloy_sol_types::private::Vec::new();
944                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
945                    rust,
946                    &mut out,
947                );
948                alloy_sol_types::abi::token::WordToken(
949                    alloy_sol_types::private::keccak256(out),
950                )
951            }
952        }
953    };
954    #[derive(Default, Debug, PartialEq, Eq, Hash)]
955    /**Function with signature `get((bytes32,address))` and selector `0xe2959982`.
956```solidity
957function get(Owned memory o) external view returns (bytes32);
958```*/
959    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
960    #[derive(Clone)]
961    pub struct getCall {
962        #[allow(missing_docs)]
963        pub o: <Owned as alloy::sol_types::SolType>::RustType,
964    }
965    #[derive(Default, Debug, PartialEq, Eq, Hash)]
966    ///Container type for the return parameters of the [`get((bytes32,address))`](getCall) function.
967    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
968    #[derive(Clone)]
969    pub struct getReturn {
970        #[allow(missing_docs)]
971        pub _0: alloy::sol_types::private::FixedBytes<32>,
972    }
973    #[allow(
974        non_camel_case_types,
975        non_snake_case,
976        clippy::pub_underscore_fields,
977        clippy::style
978    )]
979    const _: () = {
980        use alloy::sol_types as alloy_sol_types;
981        {
982            #[doc(hidden)]
983            type UnderlyingSolTuple<'a> = (Owned,);
984            #[doc(hidden)]
985            type UnderlyingRustTuple<'a> = (
986                <Owned as alloy::sol_types::SolType>::RustType,
987            );
988            #[cfg(test)]
989            #[allow(dead_code, unreachable_patterns)]
990            fn _type_assertion(
991                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
992            ) {
993                match _t {
994                    alloy_sol_types::private::AssertTypeEq::<
995                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
996                    >(_) => {}
997                }
998            }
999            #[automatically_derived]
1000            #[doc(hidden)]
1001            impl ::core::convert::From<getCall> for UnderlyingRustTuple<'_> {
1002                fn from(value: getCall) -> Self {
1003                    (value.o,)
1004                }
1005            }
1006            #[automatically_derived]
1007            #[doc(hidden)]
1008            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getCall {
1009                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1010                    Self { o: tuple.0 }
1011                }
1012            }
1013        }
1014        {
1015            #[doc(hidden)]
1016            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1017            #[doc(hidden)]
1018            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
1019            #[cfg(test)]
1020            #[allow(dead_code, unreachable_patterns)]
1021            fn _type_assertion(
1022                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1023            ) {
1024                match _t {
1025                    alloy_sol_types::private::AssertTypeEq::<
1026                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1027                    >(_) => {}
1028                }
1029            }
1030            #[automatically_derived]
1031            #[doc(hidden)]
1032            impl ::core::convert::From<getReturn> for UnderlyingRustTuple<'_> {
1033                fn from(value: getReturn) -> Self {
1034                    (value._0,)
1035                }
1036            }
1037            #[automatically_derived]
1038            #[doc(hidden)]
1039            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getReturn {
1040                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1041                    Self { _0: tuple.0 }
1042                }
1043            }
1044        }
1045        #[automatically_derived]
1046        impl alloy_sol_types::SolCall for getCall {
1047            type Parameters<'a> = (Owned,);
1048            type Token<'a> = <Self::Parameters<
1049                'a,
1050            > as alloy_sol_types::SolType>::Token<'a>;
1051            type Return = getReturn;
1052            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1053            type ReturnToken<'a> = <Self::ReturnTuple<
1054                'a,
1055            > as alloy_sol_types::SolType>::Token<'a>;
1056            const SIGNATURE: &'static str = "get((bytes32,address))";
1057            const SELECTOR: [u8; 4] = [226u8, 149u8, 153u8, 130u8];
1058            #[inline]
1059            fn new<'a>(
1060                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1061            ) -> Self {
1062                tuple.into()
1063            }
1064            #[inline]
1065            fn tokenize(&self) -> Self::Token<'_> {
1066                (<Owned as alloy_sol_types::SolType>::tokenize(&self.o),)
1067            }
1068            #[inline]
1069            fn abi_decode_returns(
1070                data: &[u8],
1071                validate: bool,
1072            ) -> alloy_sol_types::Result<Self::Return> {
1073                <Self::ReturnTuple<
1074                    '_,
1075                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
1076                    .map(Into::into)
1077            }
1078        }
1079    };
1080    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1081    /**Function with signature `requireExist((bytes32),bytes32)` and selector `0xf19eadcc`.
1082```solidity
1083function requireExist(Set memory s, bytes32 value) external view;
1084```*/
1085    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1086    #[derive(Clone)]
1087    pub struct requireExistCall {
1088        #[allow(missing_docs)]
1089        pub s: <Set as alloy::sol_types::SolType>::RustType,
1090        #[allow(missing_docs)]
1091        pub value: alloy::sol_types::private::FixedBytes<32>,
1092    }
1093    ///Container type for the return parameters of the [`requireExist((bytes32),bytes32)`](requireExistCall) function.
1094    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1095    #[derive(Clone)]
1096    pub struct requireExistReturn {}
1097    #[allow(
1098        non_camel_case_types,
1099        non_snake_case,
1100        clippy::pub_underscore_fields,
1101        clippy::style
1102    )]
1103    const _: () = {
1104        use alloy::sol_types as alloy_sol_types;
1105        {
1106            #[doc(hidden)]
1107            type UnderlyingSolTuple<'a> = (
1108                Set,
1109                alloy::sol_types::sol_data::FixedBytes<32>,
1110            );
1111            #[doc(hidden)]
1112            type UnderlyingRustTuple<'a> = (
1113                <Set as alloy::sol_types::SolType>::RustType,
1114                alloy::sol_types::private::FixedBytes<32>,
1115            );
1116            #[cfg(test)]
1117            #[allow(dead_code, unreachable_patterns)]
1118            fn _type_assertion(
1119                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1120            ) {
1121                match _t {
1122                    alloy_sol_types::private::AssertTypeEq::<
1123                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1124                    >(_) => {}
1125                }
1126            }
1127            #[automatically_derived]
1128            #[doc(hidden)]
1129            impl ::core::convert::From<requireExistCall> for UnderlyingRustTuple<'_> {
1130                fn from(value: requireExistCall) -> Self {
1131                    (value.s, value.value)
1132                }
1133            }
1134            #[automatically_derived]
1135            #[doc(hidden)]
1136            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireExistCall {
1137                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1138                    Self { s: tuple.0, value: tuple.1 }
1139                }
1140            }
1141        }
1142        {
1143            #[doc(hidden)]
1144            type UnderlyingSolTuple<'a> = ();
1145            #[doc(hidden)]
1146            type UnderlyingRustTuple<'a> = ();
1147            #[cfg(test)]
1148            #[allow(dead_code, unreachable_patterns)]
1149            fn _type_assertion(
1150                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1151            ) {
1152                match _t {
1153                    alloy_sol_types::private::AssertTypeEq::<
1154                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1155                    >(_) => {}
1156                }
1157            }
1158            #[automatically_derived]
1159            #[doc(hidden)]
1160            impl ::core::convert::From<requireExistReturn> for UnderlyingRustTuple<'_> {
1161                fn from(value: requireExistReturn) -> Self {
1162                    ()
1163                }
1164            }
1165            #[automatically_derived]
1166            #[doc(hidden)]
1167            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireExistReturn {
1168                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1169                    Self {}
1170                }
1171            }
1172        }
1173        #[automatically_derived]
1174        impl alloy_sol_types::SolCall for requireExistCall {
1175            type Parameters<'a> = (Set, alloy::sol_types::sol_data::FixedBytes<32>);
1176            type Token<'a> = <Self::Parameters<
1177                'a,
1178            > as alloy_sol_types::SolType>::Token<'a>;
1179            type Return = requireExistReturn;
1180            type ReturnTuple<'a> = ();
1181            type ReturnToken<'a> = <Self::ReturnTuple<
1182                'a,
1183            > as alloy_sol_types::SolType>::Token<'a>;
1184            const SIGNATURE: &'static str = "requireExist((bytes32),bytes32)";
1185            const SELECTOR: [u8; 4] = [241u8, 158u8, 173u8, 204u8];
1186            #[inline]
1187            fn new<'a>(
1188                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1189            ) -> Self {
1190                tuple.into()
1191            }
1192            #[inline]
1193            fn tokenize(&self) -> Self::Token<'_> {
1194                (
1195                    <Set as alloy_sol_types::SolType>::tokenize(&self.s),
1196                    <alloy::sol_types::sol_data::FixedBytes<
1197                        32,
1198                    > as alloy_sol_types::SolType>::tokenize(&self.value),
1199                )
1200            }
1201            #[inline]
1202            fn abi_decode_returns(
1203                data: &[u8],
1204                validate: bool,
1205            ) -> alloy_sol_types::Result<Self::Return> {
1206                <Self::ReturnTuple<
1207                    '_,
1208                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
1209                    .map(Into::into)
1210            }
1211        }
1212    };
1213    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1214    /**Function with signature `requireGet((bytes32))` and selector `0xfdd4a73d`.
1215```solidity
1216function requireGet(Constant memory c) external view returns (bytes32);
1217```*/
1218    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1219    #[derive(Clone)]
1220    pub struct requireGetCall {
1221        #[allow(missing_docs)]
1222        pub c: <Constant as alloy::sol_types::SolType>::RustType,
1223    }
1224    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1225    ///Container type for the return parameters of the [`requireGet((bytes32))`](requireGetCall) function.
1226    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1227    #[derive(Clone)]
1228    pub struct requireGetReturn {
1229        #[allow(missing_docs)]
1230        pub _0: alloy::sol_types::private::FixedBytes<32>,
1231    }
1232    #[allow(
1233        non_camel_case_types,
1234        non_snake_case,
1235        clippy::pub_underscore_fields,
1236        clippy::style
1237    )]
1238    const _: () = {
1239        use alloy::sol_types as alloy_sol_types;
1240        {
1241            #[doc(hidden)]
1242            type UnderlyingSolTuple<'a> = (Constant,);
1243            #[doc(hidden)]
1244            type UnderlyingRustTuple<'a> = (
1245                <Constant as alloy::sol_types::SolType>::RustType,
1246            );
1247            #[cfg(test)]
1248            #[allow(dead_code, unreachable_patterns)]
1249            fn _type_assertion(
1250                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1251            ) {
1252                match _t {
1253                    alloy_sol_types::private::AssertTypeEq::<
1254                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1255                    >(_) => {}
1256                }
1257            }
1258            #[automatically_derived]
1259            #[doc(hidden)]
1260            impl ::core::convert::From<requireGetCall> for UnderlyingRustTuple<'_> {
1261                fn from(value: requireGetCall) -> Self {
1262                    (value.c,)
1263                }
1264            }
1265            #[automatically_derived]
1266            #[doc(hidden)]
1267            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireGetCall {
1268                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1269                    Self { c: tuple.0 }
1270                }
1271            }
1272        }
1273        {
1274            #[doc(hidden)]
1275            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1276            #[doc(hidden)]
1277            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
1278            #[cfg(test)]
1279            #[allow(dead_code, unreachable_patterns)]
1280            fn _type_assertion(
1281                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1282            ) {
1283                match _t {
1284                    alloy_sol_types::private::AssertTypeEq::<
1285                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1286                    >(_) => {}
1287                }
1288            }
1289            #[automatically_derived]
1290            #[doc(hidden)]
1291            impl ::core::convert::From<requireGetReturn> for UnderlyingRustTuple<'_> {
1292                fn from(value: requireGetReturn) -> Self {
1293                    (value._0,)
1294                }
1295            }
1296            #[automatically_derived]
1297            #[doc(hidden)]
1298            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireGetReturn {
1299                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1300                    Self { _0: tuple.0 }
1301                }
1302            }
1303        }
1304        #[automatically_derived]
1305        impl alloy_sol_types::SolCall for requireGetCall {
1306            type Parameters<'a> = (Constant,);
1307            type Token<'a> = <Self::Parameters<
1308                'a,
1309            > as alloy_sol_types::SolType>::Token<'a>;
1310            type Return = requireGetReturn;
1311            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1312            type ReturnToken<'a> = <Self::ReturnTuple<
1313                'a,
1314            > as alloy_sol_types::SolType>::Token<'a>;
1315            const SIGNATURE: &'static str = "requireGet((bytes32))";
1316            const SELECTOR: [u8; 4] = [253u8, 212u8, 167u8, 61u8];
1317            #[inline]
1318            fn new<'a>(
1319                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1320            ) -> Self {
1321                tuple.into()
1322            }
1323            #[inline]
1324            fn tokenize(&self) -> Self::Token<'_> {
1325                (<Constant as alloy_sol_types::SolType>::tokenize(&self.c),)
1326            }
1327            #[inline]
1328            fn abi_decode_returns(
1329                data: &[u8],
1330                validate: bool,
1331            ) -> alloy_sol_types::Result<Self::Return> {
1332                <Self::ReturnTuple<
1333                    '_,
1334                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
1335                    .map(Into::into)
1336            }
1337        }
1338    };
1339    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1340    /**Function with signature `requireGte((bytes32),uint256)` and selector `0x57ff741c`.
1341```solidity
1342function requireGte(Counter memory c, uint256 value) external view;
1343```*/
1344    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1345    #[derive(Clone)]
1346    pub struct requireGteCall {
1347        #[allow(missing_docs)]
1348        pub c: <Counter as alloy::sol_types::SolType>::RustType,
1349        #[allow(missing_docs)]
1350        pub value: alloy::sol_types::private::primitives::aliases::U256,
1351    }
1352    ///Container type for the return parameters of the [`requireGte((bytes32),uint256)`](requireGteCall) function.
1353    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1354    #[derive(Clone)]
1355    pub struct requireGteReturn {}
1356    #[allow(
1357        non_camel_case_types,
1358        non_snake_case,
1359        clippy::pub_underscore_fields,
1360        clippy::style
1361    )]
1362    const _: () = {
1363        use alloy::sol_types as alloy_sol_types;
1364        {
1365            #[doc(hidden)]
1366            type UnderlyingSolTuple<'a> = (
1367                Counter,
1368                alloy::sol_types::sol_data::Uint<256>,
1369            );
1370            #[doc(hidden)]
1371            type UnderlyingRustTuple<'a> = (
1372                <Counter as alloy::sol_types::SolType>::RustType,
1373                alloy::sol_types::private::primitives::aliases::U256,
1374            );
1375            #[cfg(test)]
1376            #[allow(dead_code, unreachable_patterns)]
1377            fn _type_assertion(
1378                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1379            ) {
1380                match _t {
1381                    alloy_sol_types::private::AssertTypeEq::<
1382                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1383                    >(_) => {}
1384                }
1385            }
1386            #[automatically_derived]
1387            #[doc(hidden)]
1388            impl ::core::convert::From<requireGteCall> for UnderlyingRustTuple<'_> {
1389                fn from(value: requireGteCall) -> Self {
1390                    (value.c, value.value)
1391                }
1392            }
1393            #[automatically_derived]
1394            #[doc(hidden)]
1395            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireGteCall {
1396                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1397                    Self { c: tuple.0, value: tuple.1 }
1398                }
1399            }
1400        }
1401        {
1402            #[doc(hidden)]
1403            type UnderlyingSolTuple<'a> = ();
1404            #[doc(hidden)]
1405            type UnderlyingRustTuple<'a> = ();
1406            #[cfg(test)]
1407            #[allow(dead_code, unreachable_patterns)]
1408            fn _type_assertion(
1409                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1410            ) {
1411                match _t {
1412                    alloy_sol_types::private::AssertTypeEq::<
1413                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1414                    >(_) => {}
1415                }
1416            }
1417            #[automatically_derived]
1418            #[doc(hidden)]
1419            impl ::core::convert::From<requireGteReturn> for UnderlyingRustTuple<'_> {
1420                fn from(value: requireGteReturn) -> Self {
1421                    ()
1422                }
1423            }
1424            #[automatically_derived]
1425            #[doc(hidden)]
1426            impl ::core::convert::From<UnderlyingRustTuple<'_>> for requireGteReturn {
1427                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1428                    Self {}
1429                }
1430            }
1431        }
1432        #[automatically_derived]
1433        impl alloy_sol_types::SolCall for requireGteCall {
1434            type Parameters<'a> = (Counter, alloy::sol_types::sol_data::Uint<256>);
1435            type Token<'a> = <Self::Parameters<
1436                'a,
1437            > as alloy_sol_types::SolType>::Token<'a>;
1438            type Return = requireGteReturn;
1439            type ReturnTuple<'a> = ();
1440            type ReturnToken<'a> = <Self::ReturnTuple<
1441                'a,
1442            > as alloy_sol_types::SolType>::Token<'a>;
1443            const SIGNATURE: &'static str = "requireGte((bytes32),uint256)";
1444            const SELECTOR: [u8; 4] = [87u8, 255u8, 116u8, 28u8];
1445            #[inline]
1446            fn new<'a>(
1447                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1448            ) -> Self {
1449                tuple.into()
1450            }
1451            #[inline]
1452            fn tokenize(&self) -> Self::Token<'_> {
1453                (
1454                    <Counter as alloy_sol_types::SolType>::tokenize(&self.c),
1455                    <alloy::sol_types::sol_data::Uint<
1456                        256,
1457                    > as alloy_sol_types::SolType>::tokenize(&self.value),
1458                )
1459            }
1460            #[inline]
1461            fn abi_decode_returns(
1462                data: &[u8],
1463                validate: bool,
1464            ) -> alloy_sol_types::Result<Self::Return> {
1465                <Self::ReturnTuple<
1466                    '_,
1467                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
1468                    .map(Into::into)
1469            }
1470        }
1471    };
1472    ///Container for all the [`FastTypes`](self) function calls.
1473    #[derive()]
1474    pub enum FastTypesCalls {
1475        #[allow(missing_docs)]
1476        get(getCall),
1477        #[allow(missing_docs)]
1478        requireExist(requireExistCall),
1479        #[allow(missing_docs)]
1480        requireGet(requireGetCall),
1481        #[allow(missing_docs)]
1482        requireGte(requireGteCall),
1483    }
1484    #[automatically_derived]
1485    impl FastTypesCalls {
1486        /// All the selectors of this enum.
1487        ///
1488        /// Note that the selectors might not be in the same order as the variants.
1489        /// No guarantees are made about the order of the selectors.
1490        ///
1491        /// Prefer using `SolInterface` methods instead.
1492        pub const SELECTORS: &'static [[u8; 4usize]] = &[
1493            [87u8, 255u8, 116u8, 28u8],
1494            [226u8, 149u8, 153u8, 130u8],
1495            [241u8, 158u8, 173u8, 204u8],
1496            [253u8, 212u8, 167u8, 61u8],
1497        ];
1498    }
1499    #[automatically_derived]
1500    impl alloy_sol_types::SolInterface for FastTypesCalls {
1501        const NAME: &'static str = "FastTypesCalls";
1502        const MIN_DATA_LENGTH: usize = 32usize;
1503        const COUNT: usize = 4usize;
1504        #[inline]
1505        fn selector(&self) -> [u8; 4] {
1506            match self {
1507                Self::get(_) => <getCall as alloy_sol_types::SolCall>::SELECTOR,
1508                Self::requireExist(_) => {
1509                    <requireExistCall as alloy_sol_types::SolCall>::SELECTOR
1510                }
1511                Self::requireGet(_) => {
1512                    <requireGetCall as alloy_sol_types::SolCall>::SELECTOR
1513                }
1514                Self::requireGte(_) => {
1515                    <requireGteCall as alloy_sol_types::SolCall>::SELECTOR
1516                }
1517            }
1518        }
1519        #[inline]
1520        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
1521            Self::SELECTORS.get(i).copied()
1522        }
1523        #[inline]
1524        fn valid_selector(selector: [u8; 4]) -> bool {
1525            Self::SELECTORS.binary_search(&selector).is_ok()
1526        }
1527        #[inline]
1528        #[allow(non_snake_case)]
1529        fn abi_decode_raw(
1530            selector: [u8; 4],
1531            data: &[u8],
1532            validate: bool,
1533        ) -> alloy_sol_types::Result<Self> {
1534            static DECODE_SHIMS: &[fn(
1535                &[u8],
1536                bool,
1537            ) -> alloy_sol_types::Result<FastTypesCalls>] = &[
1538                {
1539                    fn requireGte(
1540                        data: &[u8],
1541                        validate: bool,
1542                    ) -> alloy_sol_types::Result<FastTypesCalls> {
1543                        <requireGteCall as alloy_sol_types::SolCall>::abi_decode_raw(
1544                                data,
1545                                validate,
1546                            )
1547                            .map(FastTypesCalls::requireGte)
1548                    }
1549                    requireGte
1550                },
1551                {
1552                    fn get(
1553                        data: &[u8],
1554                        validate: bool,
1555                    ) -> alloy_sol_types::Result<FastTypesCalls> {
1556                        <getCall as alloy_sol_types::SolCall>::abi_decode_raw(
1557                                data,
1558                                validate,
1559                            )
1560                            .map(FastTypesCalls::get)
1561                    }
1562                    get
1563                },
1564                {
1565                    fn requireExist(
1566                        data: &[u8],
1567                        validate: bool,
1568                    ) -> alloy_sol_types::Result<FastTypesCalls> {
1569                        <requireExistCall as alloy_sol_types::SolCall>::abi_decode_raw(
1570                                data,
1571                                validate,
1572                            )
1573                            .map(FastTypesCalls::requireExist)
1574                    }
1575                    requireExist
1576                },
1577                {
1578                    fn requireGet(
1579                        data: &[u8],
1580                        validate: bool,
1581                    ) -> alloy_sol_types::Result<FastTypesCalls> {
1582                        <requireGetCall as alloy_sol_types::SolCall>::abi_decode_raw(
1583                                data,
1584                                validate,
1585                            )
1586                            .map(FastTypesCalls::requireGet)
1587                    }
1588                    requireGet
1589                },
1590            ];
1591            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1592                return Err(
1593                    alloy_sol_types::Error::unknown_selector(
1594                        <Self as alloy_sol_types::SolInterface>::NAME,
1595                        selector,
1596                    ),
1597                );
1598            };
1599            DECODE_SHIMS[idx](data, validate)
1600        }
1601        #[inline]
1602        fn abi_encoded_size(&self) -> usize {
1603            match self {
1604                Self::get(inner) => {
1605                    <getCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1606                }
1607                Self::requireExist(inner) => {
1608                    <requireExistCall as alloy_sol_types::SolCall>::abi_encoded_size(
1609                        inner,
1610                    )
1611                }
1612                Self::requireGet(inner) => {
1613                    <requireGetCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1614                }
1615                Self::requireGte(inner) => {
1616                    <requireGteCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1617                }
1618            }
1619        }
1620        #[inline]
1621        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1622            match self {
1623                Self::get(inner) => {
1624                    <getCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
1625                }
1626                Self::requireExist(inner) => {
1627                    <requireExistCall as alloy_sol_types::SolCall>::abi_encode_raw(
1628                        inner,
1629                        out,
1630                    )
1631                }
1632                Self::requireGet(inner) => {
1633                    <requireGetCall as alloy_sol_types::SolCall>::abi_encode_raw(
1634                        inner,
1635                        out,
1636                    )
1637                }
1638                Self::requireGte(inner) => {
1639                    <requireGteCall as alloy_sol_types::SolCall>::abi_encode_raw(
1640                        inner,
1641                        out,
1642                    )
1643                }
1644            }
1645        }
1646    }
1647    use alloy::contract as alloy_contract;
1648    /**Creates a new wrapper around an on-chain [`FastTypes`](self) contract instance.
1649
1650See the [wrapper's documentation](`FastTypesInstance`) for more details.*/
1651    #[inline]
1652    pub const fn new<
1653        T: alloy_contract::private::Transport + ::core::clone::Clone,
1654        P: alloy_contract::private::Provider<T, N>,
1655        N: alloy_contract::private::Network,
1656    >(
1657        address: alloy_sol_types::private::Address,
1658        provider: P,
1659    ) -> FastTypesInstance<T, P, N> {
1660        FastTypesInstance::<T, P, N>::new(address, provider)
1661    }
1662    /**Deploys this contract using the given `provider` and constructor arguments, if any.
1663
1664Returns a new instance of the contract, if the deployment was successful.
1665
1666For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1667    #[inline]
1668    pub fn deploy<
1669        T: alloy_contract::private::Transport + ::core::clone::Clone,
1670        P: alloy_contract::private::Provider<T, N>,
1671        N: alloy_contract::private::Network,
1672    >(
1673        provider: P,
1674    ) -> impl ::core::future::Future<
1675        Output = alloy_contract::Result<FastTypesInstance<T, P, N>>,
1676    > {
1677        FastTypesInstance::<T, P, N>::deploy(provider)
1678    }
1679    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1680and constructor arguments, if any.
1681
1682This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1683the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1684    #[inline]
1685    pub fn deploy_builder<
1686        T: alloy_contract::private::Transport + ::core::clone::Clone,
1687        P: alloy_contract::private::Provider<T, N>,
1688        N: alloy_contract::private::Network,
1689    >(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
1690        FastTypesInstance::<T, P, N>::deploy_builder(provider)
1691    }
1692    /**A [`FastTypes`](self) instance.
1693
1694Contains type-safe methods for interacting with an on-chain instance of the
1695[`FastTypes`](self) contract located at a given `address`, using a given
1696provider `P`.
1697
1698If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1699documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1700be used to deploy a new instance of the contract.
1701
1702See the [module-level documentation](self) for all the available methods.*/
1703    #[derive(Clone)]
1704    pub struct FastTypesInstance<T, P, N = alloy_contract::private::Ethereum> {
1705        address: alloy_sol_types::private::Address,
1706        provider: P,
1707        _network_transport: ::core::marker::PhantomData<(N, T)>,
1708    }
1709    #[automatically_derived]
1710    impl<T, P, N> ::core::fmt::Debug for FastTypesInstance<T, P, N> {
1711        #[inline]
1712        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1713            f.debug_tuple("FastTypesInstance").field(&self.address).finish()
1714        }
1715    }
1716    /// Instantiation and getters/setters.
1717    #[automatically_derived]
1718    impl<
1719        T: alloy_contract::private::Transport + ::core::clone::Clone,
1720        P: alloy_contract::private::Provider<T, N>,
1721        N: alloy_contract::private::Network,
1722    > FastTypesInstance<T, P, N> {
1723        /**Creates a new wrapper around an on-chain [`FastTypes`](self) contract instance.
1724
1725See the [wrapper's documentation](`FastTypesInstance`) for more details.*/
1726        #[inline]
1727        pub const fn new(
1728            address: alloy_sol_types::private::Address,
1729            provider: P,
1730        ) -> Self {
1731            Self {
1732                address,
1733                provider,
1734                _network_transport: ::core::marker::PhantomData,
1735            }
1736        }
1737        /**Deploys this contract using the given `provider` and constructor arguments, if any.
1738
1739Returns a new instance of the contract, if the deployment was successful.
1740
1741For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1742        #[inline]
1743        pub async fn deploy(
1744            provider: P,
1745        ) -> alloy_contract::Result<FastTypesInstance<T, P, N>> {
1746            let call_builder = Self::deploy_builder(provider);
1747            let contract_address = call_builder.deploy().await?;
1748            Ok(Self::new(contract_address, call_builder.provider))
1749        }
1750        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1751and constructor arguments, if any.
1752
1753This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1754the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1755        #[inline]
1756        pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
1757            alloy_contract::RawCallBuilder::new_raw_deploy(
1758                provider,
1759                ::core::clone::Clone::clone(&BYTECODE),
1760            )
1761        }
1762        /// Returns a reference to the address.
1763        #[inline]
1764        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1765            &self.address
1766        }
1767        /// Sets the address.
1768        #[inline]
1769        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1770            self.address = address;
1771        }
1772        /// Sets the address and returns `self`.
1773        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1774            self.set_address(address);
1775            self
1776        }
1777        /// Returns a reference to the provider.
1778        #[inline]
1779        pub const fn provider(&self) -> &P {
1780            &self.provider
1781        }
1782    }
1783    impl<T, P: ::core::clone::Clone, N> FastTypesInstance<T, &P, N> {
1784        /// Clones the provider and returns a new instance with the cloned provider.
1785        #[inline]
1786        pub fn with_cloned_provider(self) -> FastTypesInstance<T, P, N> {
1787            FastTypesInstance {
1788                address: self.address,
1789                provider: ::core::clone::Clone::clone(&self.provider),
1790                _network_transport: ::core::marker::PhantomData,
1791            }
1792        }
1793    }
1794    /// Function calls.
1795    #[automatically_derived]
1796    impl<
1797        T: alloy_contract::private::Transport + ::core::clone::Clone,
1798        P: alloy_contract::private::Provider<T, N>,
1799        N: alloy_contract::private::Network,
1800    > FastTypesInstance<T, P, N> {
1801        /// Creates a new call builder using this contract instance's provider and address.
1802        ///
1803        /// Note that the call can be any function call, not just those defined in this
1804        /// contract. Prefer using the other methods for building type-safe contract calls.
1805        pub fn call_builder<C: alloy_sol_types::SolCall>(
1806            &self,
1807            call: &C,
1808        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
1809            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1810        }
1811        ///Creates a new call builder for the [`get`] function.
1812        pub fn get(
1813            &self,
1814            o: <Owned as alloy::sol_types::SolType>::RustType,
1815        ) -> alloy_contract::SolCallBuilder<T, &P, getCall, N> {
1816            self.call_builder(&getCall { o })
1817        }
1818        ///Creates a new call builder for the [`requireExist`] function.
1819        pub fn requireExist(
1820            &self,
1821            s: <Set as alloy::sol_types::SolType>::RustType,
1822            value: alloy::sol_types::private::FixedBytes<32>,
1823        ) -> alloy_contract::SolCallBuilder<T, &P, requireExistCall, N> {
1824            self.call_builder(&requireExistCall { s, value })
1825        }
1826        ///Creates a new call builder for the [`requireGet`] function.
1827        pub fn requireGet(
1828            &self,
1829            c: <Constant as alloy::sol_types::SolType>::RustType,
1830        ) -> alloy_contract::SolCallBuilder<T, &P, requireGetCall, N> {
1831            self.call_builder(&requireGetCall { c })
1832        }
1833        ///Creates a new call builder for the [`requireGte`] function.
1834        pub fn requireGte(
1835            &self,
1836            c: <Counter as alloy::sol_types::SolType>::RustType,
1837            value: alloy::sol_types::private::primitives::aliases::U256,
1838        ) -> alloy_contract::SolCallBuilder<T, &P, requireGteCall, N> {
1839            self.call_builder(&requireGteCall { c, value })
1840        }
1841    }
1842    /// Event filters.
1843    #[automatically_derived]
1844    impl<
1845        T: alloy_contract::private::Transport + ::core::clone::Clone,
1846        P: alloy_contract::private::Provider<T, N>,
1847        N: alloy_contract::private::Network,
1848    > FastTypesInstance<T, P, N> {
1849        /// Creates a new event filter using this contract instance's provider and address.
1850        ///
1851        /// Note that the type can be any event, not just those defined in this contract.
1852        /// Prefer using the other methods for building type-safe event filters.
1853        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1854            &self,
1855        ) -> alloy_contract::Event<T, &P, E, N> {
1856            alloy_contract::Event::new_sol(&self.provider, &self.address)
1857        }
1858    }
1859}